了解存取控制請求標頭
使用jQuery 透過AJAX 發出HTTP 請求時,處理跨來源請求的存取控制問題至關重要。一方面是向請求添加自訂標頭。有趣的是,在使用 FireBug 檢查請求時,可能會發現自訂標頭放入 Access-Control-Request-Headers 標頭中,而不是各自標頭中的預期值。
解決問題
此行為源自於瀏覽器的安全措施以及 AJAX 請求處理跨域互動的方式。要解決此問題,請按照提供的答案中概述的步驟操作:
$.ajax({ type: "POST", beforeSend: function(request) { request.setRequestHeader("My-First-Header", "first value"); request.setRequestHeader("My-Second-Header", "second value"); }, url: url, data: data, success: function(msg) { alert(msg); } });
beforeSend 選項可讓您在發送請求之前設定請求標頭。透過使用此選項,自訂標頭將直接新增至請求中,而不包含在 Access-Control-Request-Headers 標頭中。
結論
透過實作beforeSend 選項,您可以有效地將自訂標頭新增至 AJAX 要求,而不會面臨存取控制問題。這使您能夠隨請求發送附加訊息,並安全且有效率地與跨域資源互動。
以上是為什麼 AJAX 請求期間自訂標頭會出現在 Access-Control-Request-Headers 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!