我正在嘗試使用jQuery.ajax()創建一個跨源GET請求。我的服務器被配置爲接受這樣的請求。 Chrome瀏覽器不會允許我發送頭:Webkit瀏覽器將不允許我設置CORS預檢標頭
訪問控制請求法
訪問控制請求報頭
拒絕設定不安全頭「訪問控制,請求 - 法」 < - 錯誤 消息
這裏是我的Ajax請求:
$.ajax({
type:"GET",
headers: {
'Access-Control-Request-Method' : 'GET',
'Access-Control-Request-Headers': 'X-Custom'
},
url: "http://localhost:3000",
success: function(msg) {
console.log(msg);
}
});
我在期待這些頭文件讓瀏覽器創建一個飛行前請求(OPTIONS)與服務器協商。我知道我之前完成了這項工作。有人能告訴我我忘了什麼嗎?
非常感謝!
將'Access-Control-Expose-Headers'設置爲'x-json' – Ohgodwhy
什麼?這不是我想發送的標題。你能否詳細說明一下? – Nick
這是一種解決方法。您會發現,當您想要發出跨域請求時,就會建立預檢請求。預檢將檢查服務器的「OPTIONS」是否可用,並返回標題。在預檢完成之前,請求將無法在基於webkite的瀏覽器中解析,以避免發生跨站點僞造。 [您可以在這裏閱讀更多信息](https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS?redirectlocale=zh-CN&redirectslug=HTTP_access_control) – Ohgodwhy