Rumah > Soal Jawab > teks badan
<html>
<head>
<meta http-equiv="access-control-allow-origin" content="https://openapi.lechange.cn">
<script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
<script>
$.post('https://openapi.lechange.cn/openapi/accessToken',{"system":{"ver":"1.0","sign":"5326bdd79317a8cd215b649e75e042b6","appid":"lace1fdddaa5de4393","time":"1491895621","nonce":"49735441495760803893403522385895","appSecret":"6d5c2c727dbb4ba78fac5a0e9ece82"},"params":{"phone":"17691260000"},"id":"80"},function(data){console.log(data);},'json');
</script>
</head>
<body>
<a></a>
</body>
</html>
Apabila berjalan pada Firefox, mesej ralat berikut muncul. Permintaan silang asal disekat: Dasar asal yang sama melarang membaca sumber jauh yang terdapat di https://openapi.lechange.cn/o... (Punca: pengepala CORS 'Access-Control-Allow-Origin' tiada).
Penyelesaian yang ditemui dalam carian dalam talian adalah dengan menambah pengepala pada halaman yang diminta. Ini tidak boleh dikendalikan, dan kaedah lain juga tidak dapat menyelesaikannya. Bagaimana untuk menyelesaikannya?
天蓬老师2017-05-16 13:18:09
CORS secara amnya tidak perlu dikonfigurasikan dalam penyemak imbas Penyemak imbas mendapati bahawa permintaan AJAX silang asal ini adalah permintaan yang mudah, dan secara automatik menambah medan Asal pada maklumat pengepala digunakan untuk menunjukkan sumber (protokol ) permintaan ini berasal dari + nama domain + port).
Pelayan memutuskan sama ada untuk bersetuju menerima permintaan berdasarkan nilai ini, yang bermaksud bahawa pelayan akan mempunyai senarai putih yang menunjukkan sumber mana yang dibenarkan dan Access-Control-Allow-Origin disertakan dalam pengepala respons senarai putih.
Pelayar mendapati bahawa maklumat pengepala respons ini tidak mengandungi medan Access-Control-Allow-Origin, jadi ia tahu bahawa sesuatu telah berlaku dan menimbulkan ralat, iaitu gesaan yang anda temui ialah hasil pemulangan dipintas oleh penyemak imbas, dan bukan permintaan itu tidak boleh dihantar.
Jadi apa yang anda perlukan ialah mengkonfigurasi senarai putih ini pada pelayan, bukan menukar halaman.
Untuk prinsip CORS, anda boleh membaca artikel ini
Untuk cara mengkonfigurasi tomcat, anda boleh membaca dokumen ini
仅有的幸福2017-05-16 13:18:09
Bolehkah anda menggunakan jsonp merentas domain?
$.ajax({
url: 'https://openapi.lechange.cn/openapi/accessToken',
type: 'post',
dataType:'jsonp',
data: '{"system":{"ver":"1.0","sign":"5326bdd79317a8cd215b649e75e042b6","appid":"lace1fdddaa5de4393","time":"1491895621","nonce":"49735441495760803893403522385895","appSecret":"6d5c2c727dbb4ba78fac5a0e9ece82"},"params":{"phone":"17691260000"},"id":"80"}',
success:function(data){
console.log(data);
},
})
高洛峰2017-05-16 13:18:09
cors tidak memerlukan konfigurasi bahagian hadapan, biarkan jurutera bahagian belakang anda mengkonfigurasinya pada pelayan
ringa_lee2017-05-16 13:18:09
Gunakan nod atau ular sawa untuk menulis geganti perangkak atau menambah proksi
淡淡烟草味2017-05-16 13:18:09
Tampal kod berikut di bahagian atas fail kemasukan bahagian pelayan
Selepas masuk dalam talian, sebaiknya tukar * dalam
Access-Control-Allow-Origin: *
kepada nama domain tertentu yang membenarkan akses
header('Access-Control-Allow-Origin:*');
header('Access-Control-Allow-Methods:HEAD,GET,POST,OPTIONS,PATCH,PUT,DELETE');
header('Access-Control-Allow-Headers:Origin,X-Requested-With,Authorization,Content-Type,Accept,Z-Key');