首頁  >  文章  >  web前端  >  為什麼 AJAX 請求期間自訂標頭會出現在 Access-Control-Request-Headers 中?

為什麼 AJAX 請求期間自訂標頭會出現在 Access-Control-Request-Headers 中?

Barbara Streisand
Barbara Streisand原創
2024-11-05 10:37:02180瀏覽

Why Do Custom Headers Appear in Access-Control-Request-Headers During AJAX Requests?

了解存取控制請求標頭

使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn