Saya mencoba fetch
URL situs web lama, dan terjadi kesalahan:
Fetch API cannot load http://xyz.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://abc' is therefore not allowed access.
If an opaque response serves your needs, set the request's mode to 'no-cors'
to fetch the resource with CORS disabled.
Saya mengerti pesannya, dan mencoba melakukan permintaan yang mengembalikan respons buram:
fetch("http://xyz", {'mode': 'no-cors'})
Ok, sekarang berfungsi ... tapi saya tidak bisa membacanya. = \
Apa tujuan dari tanggapan yang tidak jelas itu?
Status code
selalu0
, bagaimana cara mengecek apakah itu berhasil jikastatus is never 200
?Respons buram tidak dapat diakses oleh JavaScript, tetapi Anda masih bisa men-cache-nya dengan API Cache dan menanggapinya dalam
fetch
event handler di pekerja layanan. Jadi mereka berguna untuk membuat aplikasi Anda offline, juga untuk sumber daya yang tidak dapat Anda kontrol (mis. Sumber daya pada CDN yang tidak mengatur header CORS).sumber
Ada juga solusi untuk aplikasi Node JS. CORS Anywhere adalah proxy NodeJS yang menambahkan header CORS ke permintaan yang diproksi.
Url ke proksi secara harfiah diambil dari jalur, divalidasi dan diproksi. Bagian protokol dari URI yang diproksi adalah opsional, dan standarnya adalah "http". Jika port 443 ditentukan, protokol default ke "https".
Paket ini tidak membatasi metode http atau header, kecuali untuk cookie. Meminta kredensial pengguna tidak diizinkan. Aplikasi ini dapat dikonfigurasikan untuk memerlukan tajuk untuk memproxy permintaan, misalnya untuk menghindari kunjungan langsung dari browser. https://robwu.nl/cors-anywhere.html
sumber
javascript agak sulit untuk mendapatkan jawabannya, saya memperbaikinya dengan mengambil api dari backend dan kemudian memanggilnya ke frontend.
sumber