删除jQuery.ajaxSetup中设置的特定请求头
Remove specific request headers set in jQuery.ajaxSetup
我使用设置了一些自定义标头
$.ajaxSetup({
headers : {
'x-custom' : 'value'
}
});
它将为所有ajax请求添加x-custom
头。但我希望一些特定的请求不包含这个标题。
我试过了,在ajax调用之前从ajaxSettings中删除标题,并在完成后将其添加回来
delete $.ajaxSettings.headers["x-custom"];
$.ajax({
...
"success": function (data) {
$.ajaxSettings.headers["x-custom"] = 'value';
...
}
});
但我觉得这不是正确的方式,因为在完成调用之前发出的请求不会得到那个标头。我还能建议你做什么。
我应该在$.ajax
之后的下一行重新添加标题,而不是在回调中添加吗?
因为这个问题没有任何可以标记为接受的答案。我正在发布解决方案。
看起来在AJAX调用之后立即添加回头是有意义的。这样我们就不会等待成功回调,然后再添加它。
delete $.ajaxSettings.headers["x-custom"]; // Remove header before call
$.ajax({
...
"success": function (data) {
...
}
});
$.ajaxSettings.headers["x-custom"] = 'value'; // Add it back immediately
您可以添加一个ajaxComplete函数。它将在您所有的ajax请求之后运行,并根据您的意愿执行任何操作
像这样的
$(document).ajaxComplete(function(event, xhr, settings) {
// Add the headers again.
$.ajaxSetup({
headers : {
"x-custom" : "value"
}
});
}
});
你可以在这里找到文档
此外,从jQuery 1.8开始,.ajaxComplete((方法应仅附加到文档。
相关文章:
- 哪个 JavaScript 库在请求对象上设置 _parsedUrl 属性
- 如何设置$.ajax请求的超时,并在超时时间过长时进行重做
- 在不发出请求的情况下设置img src
- 导轨 4.宝石will_paginate.更改在 ajax 请求上设置的分页链接
- 在express.js中为每个请求设置全局res.local变量
- Ajax请求返回模块设置数据
- 有没有办法为节点js-https请求设置源端口
- 在 Chrome 扩展程序中为 HTTP 请求设置用户代理
- 使用 Fetch GET 请求设置查询字符串
- 为从
标记发出的请求设置自定义标头
- 如何为JQuery$.ajax同步请求设置超时并执行某些操作
- 在CasperJS中为请求设置cookie
- 如何根据Node.js中的post参数之一为所有请求设置时区
- 避免将ajax请求设置为同步的解决方案
- XMLHttpRequest为每个请求设置RequestHeader
- 如何使用AJAX请求设置cookie值
- 为express app中的JSON请求设置正确的内容类型
- 有没有办法为一个请求设置一个cookie ?
- 如何为每个服务器请求设置uid
- 我可以为所有 AJAX 请求设置全局标头吗?