Apa yang menyebabkan halaman dibatalkan? Saya memiliki tangkapan layar Alat Pengembang Chrome.
Ini sering terjadi tetapi tidak setiap waktu. Sepertinya begitu beberapa sumber daya lainnya di-cache, refresh halaman akan memuat LeftPane.aspx. Dan apa yang benar-benar aneh adalah ini hanya terjadi di Google Chrome, bukan Internet Explorer 8. Ada ide mengapa Chrome akan membatalkan permintaan?
net::ERR_ABORTED
bawah selimut. Jika itu masalahnya, pos ini menjelaskan bahwa "net :: ERR_ABORTED dimaksudkan hanya dihasilkan ketika tindakan pengguna menyebabkan beban terganggu. Ini dapat terjadi ketika navigasi baru mengganggu yang sudah ada, atau ketika pengguna mengklik STOP tombol."Jawaban:
Kami menghadapi masalah serupa di mana Chrome membatalkan permintaan untuk memuat hal-hal dalam bingkai atau iframe, tetapi hanya sebentar-sebentar dan itu tampaknya tergantung pada komputer dan / atau kecepatan koneksi internet.
Informasi ini beberapa bulan kedaluwarsa, tetapi saya membuat Chromium dari awal, menggali sumbernya untuk menemukan semua tempat di mana permintaan dapat dibatalkan, dan menampar breakpoint pada semuanya untuk di-debug. Dari memori, satu-satunya tempat di mana Chrome akan membatalkan permintaan:
Dalam kasus kami, kami akhirnya melacaknya ke satu frame mencoba menambahkan HTML ke frame lain, yang kadang-kadang terjadi sebelum frame tujuan bahkan dimuat. Setelah Anda menyentuh konten iframe, ia tidak dapat lagi memuat sumber daya ke dalamnya (bagaimana ia tahu di mana harus meletakkannya?) Sehingga membatalkan permintaan.
sumber
document.write
s ke frame itu dan pastikan mereka hanya menulis ketika frame dimuat. Saya akan menandai ini sebagai jawaban yang benar karena Anda menjawab arti dari status itu.true
ke beberapa variabel, lalu frame lain mencari itu terlebih dahulu sebelum menyentuh apa pun.status = dibatalkan dapat terjadi juga pada permintaan ajax pada acara JavaScript:
Acara berhasil mengirim permintaan, tetapi kemudian dibatalkan (tetapi diproses oleh server). Alasannya adalah, elemen mengirimkan formulir pada acara klik, tidak masalah jika Anda membuat permintaan ajax pada acara klik yang sama.
Untuk mencegah permintaan dibatalkan, JavaScript event.preventDefault (); harus dipanggil:
sumber
ng-click
pada tombol dengantype="submit"
dan kemudian melakukan beberapa jaringan dalam fungsi yang disebut. Chrome terus membatalkan permintaan itu ...NB: Pastikan Anda tidak memiliki elemen bentuk pembungkus .
Saya memiliki masalah serupa di mana tombol saya dengan onclick = {} dibungkus dalam elemen formulir. Saat mengklik tombol, formulir juga dikirimkan, dan itu mengacaukan semuanya ...
Jawaban ini mungkin tidak akan pernah dibaca oleh siapa pun, tetapi saya pikir mengapa tidak menulisnya :)
sumber
@click
peristiwa terikat ke<button>
elemen di dalam pembungkus formulir. Hindari melakukan ini kecuali jika Anda menggunakan@submit.prevent
pengubah acara Vue .type="button"
ke tag tombol saya, formulir tidak dikirim dan acara yang dibatalkan dihindari.Hal lain yang harus diperhatikan adalah ekstensi AdBlock, atau ekstensi secara umum.
Tapi "banyak" orang memiliki AdBlock ....
Untuk mengesampingkan ekstensi, buka tab baru dalam penyamaran dengan memastikan bahwa "izinkan dalam penyamaran dimatikan" untuk ekstensi yang ingin Anda uji.
sumber
Anda mungkin ingin memeriksa tag header "X-Frame-Options". Jika disetel ke SAMAORIGIN atau DENY, maka penyisipan iFrame akan dibatalkan oleh Chrome (dan peramban lain) sesuai spesifikasi .
Perhatikan juga bahwa beberapa browser mendukung pengaturan ALLOW-FROM tetapi Chrome tidak.
Untuk mengatasi ini, Anda harus menghapus tag header "X-Frame-Options". Ini bisa membuat Anda terbuka untuk serangan klik sehingga Anda perlu memutuskan apa risikonya dan bagaimana cara mengatasinya.
sumber
Dalam kasus saya, saya menemukan bahwa itu adalah pengaturan jquery global timeout, sebuah plugin jquery yang mengatur global timeout hingga 500ms, sehingga ketika permintaan melebihi 500ms, chrome akan membatalkan permintaan.
sumber
includes/class-wc-frontend-scripts.php
file.Inilah yang terjadi pada saya: server mengembalikan header "Lokasi" salah bentuk untuk 302 redirect. Chrome gagal memberi tahu saya hal ini, tentu saja. Saya membuka halaman di firefox, dan segera menemukan masalahnya. Senang memiliki banyak alat :)
sumber
#{}
interpolasi, sehingga url yang dihasilkan salah. Tetapi Chrome tidak memberi tahu saya tentang hal itu.Tempat lain yang pernah kami temui
(canceled)
statusnya adalah kesalahan konfigurasi sertifikat TLS tertentu. Jika situs sepertihttps://www.example.com
salah konfigurasi sehingga sertifikat tidak termasukwww.
tetapi valid untukhttps://example.com
, chrome akan membatalkan permintaan ini dan secara otomatis mengarahkan ulang ke situs yang terakhir. Ini bukan kasus untuk Firefox.Contoh saat ini valid: https://www.pthree.org/
sumber
Permintaan yang dibatalkan terjadi pada saya ketika mengalihkan antara halaman aman dan tidak aman di domain terpisah dalam iframe. Permintaan yang dialihkan ditampilkan di alat dev sebagai permintaan "dibatalkan".
Saya memiliki halaman dengan iframe yang berisi formulir yang diinangi oleh gateway pembayaran saya. Ketika formulir di iframe dikirimkan, gateway pembayaran akan mengarahkan kembali ke URL di server saya. Pengalihan baru-baru ini berhenti berfungsi dan berakhir sebagai permintaan "dibatalkan".
Tampaknya Chrome (saya menggunakan Windows 7 Chrome 30.0.1599.101) tidak lagi mengizinkan pengalihan dalam iframe untuk pergi ke halaman yang tidak aman pada domain yang terpisah. Untuk memperbaikinya, saya hanya memastikan bahwa permintaan yang dialihkan di iframe selalu dikirim ke URL yang aman.
Ketika saya membuat halaman pengujian yang lebih sederhana dengan hanya iframe, ada peringatan di konsol (yang sebelumnya saya lewatkan atau mungkin tidak muncul):
Redirect berubah menjadi permintaan yang dibatalkan di Chrome di PC, Mac dan Android. Saya tidak tahu apakah ini khusus untuk penyiapan situs web saya (Profil Rendah SagePay) atau apakah ada sesuatu yang berubah di Chrome.
sumber
Versi Chrome 33.0.1750.154 m secara konsisten membatalkan pemuatan gambar jika saya menggunakan Emulasi Seluler yang diarahkan ke hosting lokal saya; khusus dengan Agen Pengguna yang spoofing aktif (vs. pengaturan Layar saja).
Saat saya mematikan Agen Pengguna spoofing; permintaan gambar tidak dibatalkan, saya melihat gambar.
Saya masih tidak mengerti mengapa; dalam kasus sebelumnya, di mana permintaan dibatalkan, Header Permintaan (PERHATIAN: Header sementara ditampilkan) hanya memiliki
Dalam kasus terakhir, semua yang ditambah lainnya seperti:
Mengangkat bahu
sumber
Saya mendapatkan kesalahan ini di Chrome ketika saya dialihkan melalui JavaScript:
Seperti yang Anda lihat saya lupa 'http: //' . Setelah saya menambahkannya, itu berhasil.
sumber
Untuk kasus saya, saya memiliki jangkar dengan acara klik seperti
Di dalam acara klik saya mendapat panggilan jaringan, Chrome membatalkan permintaan. Jangkar memiliki
href
dengan""
berarti, itu memuat ulang halaman dan saat yang sama memiliki klik acara dengan panggilan jaringan yang dibatalkan. Setiap kali saya menggantihref
dengan void likeMasalahnya hilang!
sumber
Berikut adalah kasus lain permintaan dibatalkan oleh chrome, yang baru saja saya temui, yang tidak tercakup oleh jawaban apa pun di sana.
Singkatnya,
sertifikat yang ditandatangani sendiri tidak dipercaya di ponsel android saya.
Detail
Kami sedang dalam tahap pengembangan / debug. URL mengarah ke host yang ditandatangani sendiri. Kodenya seperti:
Chrome hanya membatalkan permintaan secara diam-diam, tanpa meninggalkan petunjuk bagi pemula untuk pengembangan web seperti saya untuk memperbaiki masalah ini. Setelah saya mengunduh dan menginstal sertifikat menggunakan ponsel android, masalahnya hilang.
sumber
Jika Anda menggunakan beberapa permintaan HTTP berbasis Observable seperti built-in di Angular (2+), maka permintaan HTTP dapat dibatalkan ketika diamati dapat dibatalkan (hal yang umum ketika Anda menggunakan
switchMap
operator RxJS 6 untuk menggabungkan aliran) . Dalam kebanyakan kasus, cukup menggunakanmergeMap
operator saja, jika Anda ingin menyelesaikan permintaan.sumber
Saya memiliki hal yang sama persis dengan dua file CSS yang disimpan di folder lain di luar folder css utama saya. Saya menggunakan Mesin Ekspresi dan menemukan bahwa masalahnya ada pada aturan di file htaccess saya. Saya baru saja menambahkan folder ke salah satu kondisi saya dan memperbaikinya. Ini sebuah contoh:
Jadi mungkin ada baiknya Anda memeriksa file htaccess Anda untuk setiap potensi konflik
sumber
Saya telah menyematkan semua jenis font serta woff , woff2 , ttf ketika saya menyematkan font web dalam style sheet. Baru-baru ini saya perhatikan bahwa Chrome membatalkan permintaan ke ttf dan woff ketika woff2 hadir. Saya menggunakan Chrome versi 66.0.3359.181 sekarang tetapi saya tidak yakin kapan Chrome mulai membatalkan jenis font tambahan.
sumber
Kami memiliki masalah ini memiliki tag
<button>
dalam formulir, yang seharusnya mengirim permintaan ajax dari js. Tetapi permintaan ini dibatalkan, karena browser, yang mengirimkan formulir secara otomatis pada setiap klikbutton
dalam formulir.Jadi jika Anda benar-benar ingin menggunakan
button
daripada biasadiv
atauspan
pada halaman, dan Anda ingin mengirim js melempar formulir - Anda harus menyiapkan pendengar denganpreventDefault
fungsi.misalnya
sumber
terjadi pada saya sama ketika memanggil a. file js dengan $. ajax, dan membuat permintaan ajax, apa yang saya lakukan adalah menelepon secara normal.
sumber
Dalam kasus saya, kode untuk menampilkan jendela klien email menyebabkan Chrome berhenti memuat gambar:
memindahkannya ke $ (window) .load (function () {...}) alih-alih $ (function () {...}) membantu.
sumber
Dalam kaleng ini membantu siapa pun saya menemukan status yang dibatalkan ketika saya meninggalkan pengembalian palsu; dalam formulir kirim. Ini menyebabkan pengiriman ajax segera diikuti oleh tindakan kirim, yang menimpa halaman saat ini. Kode ditunjukkan di bawah ini, dengan return penting salah di akhir.
Semoga itu bisa membantu seseorang.
sumber
Bagi siapa pun yang datang dari LoopbackJS dan berusaha menggunakan metode aliran khusus seperti yang disediakan dalam contoh grafik mereka. Saya mendapatkan kesalahan ini menggunakan
PersistedModel
, beralih ke dasarModel
memperbaiki masalah sayaeventsource
pembatalan status.Sekali lagi, ini khusus untuk api loopback. Dan karena ini adalah jawaban teratas dan teratas di google saya pikir saya akan melemparkan ini ke dalam campuran jawaban.
sumber
Saya telah menghadapi masalah yang sama, di suatu tempat jauh di dalam kode kami, kami memiliki pseudocode ini:
onload iframe mengirimkan formulir
Setelah 2 detik, hapus iframe
dengan demikian, ketika server membutuhkan waktu lebih dari 2 detik untuk merespons iframe yang menjadi respons server tersebut, dihapus, tetapi responsnya masih harus ditulis, tetapi tidak ada iframe untuk ditulis, sehingga chrome membatalkan permintaan, jadi untuk menghindari ini, saya memastikan bahwa iframe dihapus hanya setelah responsnya selesai, atau Anda dapat mengubah target menjadi "_blank". Jadi salah satu alasannya adalah: ketika sumber daya (iframe dalam kasus saya) tempat Anda menulis sesuatu, dihapus atau dihapus sebelum Anda berhenti menulis padanya, permintaan akan dibatalkan
sumber
Bagi saya status 'dibatalkan' adalah karena file tidak ada. Aneh mengapa chrome tidak muncul
404
.sumber
Itu sesederhana jalan yang salah bagi saya. Saya menyarankan langkah pertama dalam debugging adalah untuk melihat apakah Anda dapat memuat file secara independen dari ajax dll.
sumber
Permintaan mungkin telah diblokir oleh plugin perlindungan pelacakan.
sumber
Itu terjadi pada saya ketika memuat 300 gambar sebagai gambar latar. Saya menduga sekali pertama kali habis, itu membatalkan sisanya, atau mencapai permintaan bersamaan. perlu menerapkan 5-pada-waktu
sumber
Salah satu alasannya adalah XMLHttpRequest.abort () dipanggil di suatu tempat dalam kode, dalam hal ini, permintaan akan memiliki
cancelled
status di tab Jaringan alat Pengembang Chrome.sumber
Dalam kasus saya, mulai muncul setelah pembaruan chrome 76.
Karena beberapa masalah dalam kode JS saya, window.location semakin diperbarui beberapa kali yang mengakibatkan membatalkan permintaan sebelumnya. Meskipun masalah muncul dari sebelumnya, chrome mulai membatalkan permintaan setelah memperbarui ke versi 76.
sumber
Saya memiliki masalah yang sama ketika memperbarui catatan. Di dalam save () saya sedang menyiapkan data mentah yang diambil dari formulir untuk mencocokkan format database (melakukan banyak pemetaan nilai enums, dll), dan ini sebentar-sebentar membatalkan permintaan put. saya mengatasinya dengan mengambil data prepping dari save () dan membuat metode dataPrep () khusus dari itu. Saya mengubah dataPrep ini menjadi async dan menunggu semua konversi data intensif memori. Saya kemudian mengembalikan data yang sudah disiapkan ke metode save () yang bisa saya gunakan di http put client. Saya memastikan saya menunggu dataPrep () sebelum memanggil metode put:
await dataToUpdate = await dataPrep (); http.put (apiUrl, dataToUpdate);
Ini menyelesaikan pembatalan permintaan yang terputus-putus.
sumber
Jika Anda menggunakan aksioma, ini dapat membantu Anda
// change timeout delay: instance.defaults.timeout = 2500;
https://github.com/axios/axios#config-order-of-precedence
sumber