您希望使用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 –