使用jQuery 的AJAX POST 請求中的自訂標頭
在使用jQuery 發起的AJAX POST 請求中,可以包含自訂標頭。但是,添加標頭的機制與典型方法不同。
當您按範例所示指定標頭時:
$.ajax({ type: 'POST', url: url, headers: { "My-First-Header":"first value", "My-Second-Header":"second value" } }).done(function(data) { alert(data); });
可以理解,您會期望標頭發送為:
My-First-Header: first value My-Second-Header: second value
但是,瀏覽器安全措施會阻止直接在初始請求中發送自訂標頭值。相反,它們被放置在 Access-Control-Request-Headers 標頭中。這是一種稱為預檢請求的安全機制。
為了允許後續請求包含實際的標頭值,伺服器必須配置必要的 CORS(跨來源資源共用)標頭。
解決此問題的方法是以不同的方式發送標頭,如給定的範例程式碼所示:
$.ajax({ type: "POST", beforeSend: function(request) { request.setRequestHeader("Authority", authorizationToken); }, url: "entities", data: "json=" + escape(JSON.stringify(createRequestObject)), processData: false, success: function(msg) { $("#results").append("The result =" + StringifyPretty(msg)); } });
這種方法實際上直接設定請求標頭值,繞過Access-控制請求標頭放置。它提供了一種在初始請求中發送自訂標頭的方法,無需伺服器配置。
以上是如何使用 jQuery 在 AJAX POST 請求中發送自訂標頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!