一尘不染

如何使用js或jQuery向ajax请求添加自定义HTTP标头?

javascript

有谁知道如何使用JavaScript或jQuery添加或创建自定义HTTP标头?


阅读 546

收藏
2020-04-25

共1个答案

一尘不染

根据您的需求,有几种解决方案…

如果要向 单个请求添加自定义标头(或标头集), 则只需添加headers属性:

// Request with custom header
$.ajax({
    url: 'foo/bar',
    headers: { 'x-my-custom-header': 'some value' }
});

如果要向 每个请求添加默认标头(或标头集),请 使用$.ajaxSetup()

$.ajaxSetup({
    headers: { 'x-my-custom-header': 'some value' }
});

// Sends your custom header
$.ajax({ url: 'foo/bar' });

// Overwrites the default header with a new header
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });

如果 要向每个请求添加标头(或标头集), 则将beforeSend钩子与一起使用$.ajaxSetup()

$.ajaxSetup({
    beforeSend: function(xhr) {
        xhr.setRequestHeader('x-my-custom-header', 'some value');
    }
});

// Sends your custom header
$.ajax({ url: 'foo/bar' });

// Sends both custom headers
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });

编辑(更多信息):
要注意的一件事情是,ajaxSetup您只能定义一组默认标头,而只能定义一个beforeSend。如果ajaxSetup多次调用,将仅发送最后一组头,并且仅执行最后一个发送前回调。

2020-04-25