您希望使用beforeSend
在請求發送前修改請求。這些都包含在您鏈接的文檔中。全球ajaxSend
事件不會幫助您篡改請求。距離全球最近的東西是電話ajaxSetup
,通過beforeSend
選項是所有後續ajax調用的默認選項。
似乎沒有簡單的方法從XMLHttpRequest
對象獲取請求標頭。由於我假設你自己設置你的日誌標題,然而,你也許可以掛接到這些標題的設置,並存儲訪問參考他們:
XMLHttpRequest.prototype.readableHeaders = {};
XMLHttpRequest.prototype.proxiedSetRequestHeader = XMLHttpRequest.prototype.setRequestHeader;
XMLHttpRequest.prototype.setRequestHeader = function(header, value) {
this.proxiedSetRequestHeader(header, value);
this.readableHeaders[header] = value;
};
通過這種方式,你應該能夠直接檢查jqXHR.readableHeaders
對象的特定日誌記錄標題,並在beforeSend
中再次調用setRequestHeader
,以便截斷字符串(如果需要)。
要檢索標頭,您需要從jqXHR對象訪問XMLHttpRequest的基礎實例。使用xhr()
函數來檢索實例。
$.ajaxSetup({
beforeSend: function (jqXHR, settings) {
console.log(settings.xhr().readableHeaders);
}
});
退房這樣的回答:http://stackoverflow.com/questions/7686827/how-can-i-add-a-custom-http-header-to-ajax-request-with-js-or -jquery –