Apabila pelayan membalas permintaan pengambilan GET, mestikah parameter 'Access-Control-Allow-Origin' ditetapkan dalam pengepala respons?
Ini adalah API Yiban, bukan pelayan saya
Tiada masalah semasa membuat permintaan pada pelayar
Saya menyemak beberapa maklumat dan mendapati ia tidak berguna
Ini adalah kod untuk permintaan mendapatkan saya
function request_get(url) {
return fetch(url, {
credentials: 'include',
}).then(function(response) {
return response.json()
})
}
Masalah ini disebabkan oleh dasar asal pelayar yang sama, dan terdapat beberapa penyelesaian:
JSONP
CORS
Gunakan pelayan sumber statik Nginx atau Express untuk konfigurasi proksi rangkaian, dan simulasi sumber tempatan dan jauh untuk menjadi sumber yang sama untuk menarik data
Ini bermakna API yang anda minta tidak berada dalam domain yang sama dengan halaman anda Jika API tidak menetapkan medan
Access-Control-Allow-Origin
, ini bermakna ia bukan antara muka API yang menyokong akses merentas domain. Apabila menulis Logik Ambil pada halaman, tidak kira bagaimana pengepala permintaan disesuaikan, ia juga akan dipintas oleh penyemak imbas (sebelum pengambilan, penyemak imbas akan memulakan permintaan OPTIONS pra-penerbangan dan menentukan sama ada pengambilan dibenarkan berdasarkan medan pengepala Pada masa ini, penyemak imbas menentukan API tidak menyokong domain silang, jadi permintaan dipintas atas sebab keselamatan).