删除jQuery.ajaxSetup中设置的特定请求标头

Sal*_*man 14 javascript ajax jquery http-headers

我使用设置一些自定义标头

$.ajaxSetup({
    headers : {
        'x-custom' : 'value'
    }
});
Run Code Online (Sandbox Code Playgroud)

它将x-custom为所有ajax请求添加标头.但是我希望一些特定的请求不包含此标头.

我试过这个,在ajax调用之前从ajaxSettings中删除头文件,并在完成后将其添加回来

delete $.ajaxSettings.headers["x-custom"];

$.ajax({
    ...
    "success": function (data) {
        $.ajaxSettings.headers["x-custom"] = 'value';
        ...
    }
});
Run Code Online (Sandbox Code Playgroud)

但我觉得这不是正确的方法,因为在完成该调用之前触发的请求将不会获得该标头.我还能做些什么呢?

我应该$.ajax在回调后将其添加回下一行吗?

Sal*_*man 17

由于此问题没有任何可以标记为已接受的答案.我发布了解决方案.

看起来像在AJAX调用之后立即添加回头是有意义的.这样我们就不会等待成功回调然后添加它.

delete $.ajaxSettings.headers["x-custom"]; // Remove header before call

$.ajax({
    ...
    "success": function (data) {
        ...
    }
});

$.ajaxSettings.headers["x-custom"] = 'value'; // Add it back immediately
Run Code Online (Sandbox Code Playgroud)