Saya mencoba membuat permintaan lintas sumber sederhana, dan Firefox secara konsisten memblokirnya dengan kesalahan ini:
Permintaan Lintas-Asal Diblokir: Kebijakan Asal yang Sama melarang membaca sumber daya jarak jauh di [url]. Ini dapat diperbaiki dengan memindahkan sumber daya ke domain yang sama atau mengaktifkan CORS. [url]
Ini berfungsi dengan baik di Chrome dan Safari.
Sejauh yang saya tahu, saya telah mengatur semua tajuk yang benar di PHP saya untuk memungkinkan ini berfungsi. Inilah yang server saya tanggapi
HTTP/1.1 200 OK
Date: Mon, 23 Jun 2014 17:15:20 GMT
Server: Apache/2.2.22 (Debian)
X-Powered-By: PHP/5.4.4-14+deb7u8
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type
Access-Control-Request-Headers: X-Requested-With, accept, content-type
Vary: Accept-Encoding
Content-Length: 186
Content-Type: text/html
Saya sudah mencoba menggunakan Angular, jQuery, dan objek XMLHTTPRequest dasar, seperti:
var data = "id=1234"
var request = new XMLHttpRequest({mozSystem: true})
request.onload = onSuccess;
request.open('GET', 'https://myurl.com' + '?' + data, true)
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
request.send()
... dan berfungsi di setiap browser kecuali Firefox. Adakah yang bisa membantu dengan ini?
javascript
firefox
cors
cross-domain
Godwhacker
sumber
sumber
mozSystem
tidak didukung untuk situs web biasa hanya memaketkan aplikasi firefox-os , jadi jatuhkan opsi itu.Accept application/json, text/plain, */*
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Content-Length 35
Content-Type application/x-www-form-urlencoded; charset=UTF-8
Host [url]
Origin [url]
Referer [referrer url]
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:30.0) Gecko/20100101 Firefox/30.0
Kesalahan:Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at [url]. This can be fixed by moving the resource to the same domain or enabling CORS. [url]
Jawaban:
Ternyata ini tidak ada hubungannya dengan CORS- ini adalah masalah dengan sertifikat keamanan. Kesalahan menyesatkan = 4 jam sakit kepala.
sumber
withCredentials=true
pada instance XHR; jika tidak, Firefox gagal menggunakan sertifikat klien saat membuat permintaan (namun, berfungsi dengan baik di Chrome).Saya menemukan bahwa masalah saya adalah server yang saya kirimkan permintaan silang memiliki sertifikat yang tidak dipercaya.
Jika Anda ingin terhubung ke lintas domain dengan
https
, Anda harus menambahkan pengecualian untuk sertifikat ini terlebih dahulu.Anda dapat melakukan ini dengan mengunjungi tautan yang diblokir satu kali dan menambahkan pengecualian.
sumber
Saya menemukan pertanyaan ini setelah menemukan permintaan di Firefox yang diblokir dengan pesan:
Setelah menarik rambut saya, saya menemukan bahwa ekstensi Firefox yang baru dipasang, Privacy Badger, memblokir permintaan tersebut.
Jika Anda sampai pada pertanyaan ini setelah menggaruk-garuk kepala, coba periksa untuk melihat ekstensi apa yang telah Anda pasang untuk melihat apakah ada di antara mereka yang memblokir permintaan.
Lihat Alasan: Permintaan CORS tidak berhasil di MDN untuk detailnya.
sumber
Saya telah menemukan solusi setelah 2 hari :(.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Requests_with_credentials
sumber
Jika Anda tidak memiliki sertifikat 'asli' (dan karenanya menggunakan sertifikat yang ditandatangani sendiri), di FireFox Anda dapat pergi ke:
Disana isikan lokasinya, misal: https: //wwww.myserver: myport
sumber
Hanya satu kata peringatan. Saya akhirnya mengatasi masalah dengan Firefox dan CORS.
Solusi bagi saya adalah posting ini
Menyetel CORS (berbagi sumber daya lintas sumber) di Apache dengan header respons yang benar memungkinkan semuanya melalui | Benjamin Horn
Namun Firefox berperilaku sangat, sangat aneh setelah mengatur header tersebut di server Apache (di folder .htaccess).
Saya menambahkan banyak
console.log("Hi FF, you are here A")
dll untuk melihat apa yang sedang terjadi.Pada awalnya sepertinya itu digantung
xhr.send()
. Tapi kemudian saya menemukan itu tidak sampai pada pernyataan ini. Saya menempatkan yang lainconsole.log
tepat sebelum itu dan tidak sampai di sana - meskipun tidak ada apa-apa antara yang terakhirconsole.log
dan yang baru. Itu hanya berhenti di antara duaconsole.log
.Menyusun ulang baris, menghapus, untuk melihat apakah ada karakter aneh dalam file. Saya tidak menemukan apa pun.
Memulai ulang Firefox memperbaiki masalah.
Ya, saya harus melaporkan bug. Hanya saja sangat aneh sehingga tidak tahu bagaimana cara memperbanyaknya.
PEMBERITAHUAN : Dan, oh, saya baru saja mengerjakan
Header always set
bagiannya, bukanRewrite*
bagiannya!sumber
Tambahkan saja
ke
.htaccess
file di root situs web yang Anda coba sambungkan.sumber
Untuk anak cucu, periksa juga log server untuk melihat apakah sumber daya yang diminta mengembalikan 200.
Saya mengalami masalah serupa, di mana semua header yang tepat dikembalikan dalam permintaan ajax pra-penerbangan, tetapi browser melaporkan bahwa permintaan sebenarnya diblokir karena header CORS yang buruk.
Ternyata, halaman yang diminta mengembalikan kesalahan 500 karena kode yang buruk, tetapi hanya jika diambil melalui CORS. Browser (baik Chrome dan Firefox) secara keliru melaporkan bahwa header Access-Control-Allow-Origin hilang alih-alih mengatakan bahwa halaman tersebut mengembalikan 500.
sumber
Coba ini, ini akan menyelesaikan masalah Anda
Di config.php Anda, tambahkan www pre di domain.com Anda. Sebagai contoh:
Tambahkan ini ke file .htaccess Anda
sumber
Bagi saya, ternyata
Access-Control-Allow-Origin
header respon saya setting ke spesifik (dan benar)host.com
tetapi harus dikembalikan sebagaihttp://host.com
gantinya. Apa yang dilakukan firefox? Ini diam-diam menelan permintaan GET dan mengembalikan status 0 ke XHR, tanpa output peringatan ke konsol javascript, sedangkan untuk kegagalan serupa lainnya setidaknya akan mengatakan sesuatu. Ai ai.sumber
Untuk men-debug, periksa log server jika memungkinkan. Firefox mengembalikan kesalahan CORS di konsol karena berbagai alasan.
Salah satu alasannya adalah juga uMatrix (dan saya rasa NoScript dan sejenisnya juga) plugin.
sumber
Saya menghadapi masalah serupa, dan saya pikir valid untuk didaftarkan bagaimana saya memperbaikinya:
Saya memiliki sistem yang pada dasarnya dibangun di atas Symfony 3. Untuk belajar sendiri dan tujuan kinerja, saya memutuskan untuk menulis beberapa skrip menggunakan GoLang, juga, API dengan akses publik.
My Go API mengharapkan parameter format Json, dan juga mengembalikan respons format Json
Untuk memanggil GoApi yang saya gunakan, kebanyakan, $ .ajax (jQuery) Tes pertama adalah penipuan: pop up "Permintaan Lintas-Asal Diblokir" (tidak) terkenal! Kemudian, saya mencoba untuk mengatur "Access-Control-Allow-Origin: *" pada confache conf, htaccess, php, javascript dan di mana saja saya dapat menemukan di google!
Tapi, bahkan, kesalahan membuat frustrasi yang sama !!!
Solusinya sederhana: Saya harus membuat permintaan "POST", bukan "GET".
Untuk mencapai itu saya harus menyesuaikan keduanya, GoLang dan JavaScript untuk menggunakan GET! Setelah selesai, tidak ada lagi Permintaan Lintas Asal yang Diblokir untukku !!!
Semoga Membantu
PS:
Saya menggunakan apache dan Vhost, di Blok Direktori yang saya miliki
Ingat: "*" berarti Anda akan menerima permintaan dari siapa pun !!! (Yang mungkin merupakan kekurangan keamanan) Dalam kasus saya, tidak apa-apa, karena ini akan menjadi API publik
PS2: Header Saya
Header respons
Header permintaan (469 B)
sumber
Jika jawaban yang disebutkan di atas tidak membantu, periksa apakah server backend aktif dan berjalan atau tidak seperti dalam kasus saya server macet dan kesalahan ini ternyata benar-benar menyesatkan.
sumber
Dalam kasus saya itu adalah ADBLOCKER saya ! Untuk beberapa alasan itu diaktifkan di localhost saya dan menyebabkan kesalahan ini di Firefox.
Menonaktifkan atau menghapus yang plugin yang harus memperbaiki ini.
Dalam kasus Anda, ini mungkin bukan adblocker tetapi plugin Firefox lainnya. Uji coba dalam mode penyamaran terlebih dahulu tanpa plugin untuk menentukan apakah itu masalahnya dan kemudian nonaktifkan plugin secara sistematis hingga Anda menemukan pelakunya.
sumber
File-file itu cukup jelas. Buat file, sebut saja apa saja. Dalam kasus saya jq2.php.
Sekarang kami akan menyertakan mesin, membuat file, menyebutnya apa pun yang Anda suka. Dalam kasus saya ini adalah gs.php.
Saya telah mencoba membuat contoh sesederhana mungkin. Dan karena itu mengeksekusi tautan pada setiap penekanan tombol, kuota API Anda akan dikonsumsi dengan cukup cepat.
Tentu tidak ada habisnya hal-hal yang bisa kita lakukan, seperti memasukkan data ke dalam tabel, mengirim ke database dan sebagainya.
sumber