如何使用js或jQuery将自定义HTTP标头添加到ajax请求中?
2022-08-29 23:43:22
有没有人知道如何使用JavaScript或jQuery添加或创建自定义HTTP标头?
有没有人知道如何使用JavaScript或jQuery添加或创建自定义HTTP标头?
有几种解决方案,具体取决于您的需求...
如果要将自定义标头(或标头集)添加到单个请求中,则只需添加该属性: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
或者,如果要为将来的每个请求发送自定义标头,则可以使用以下方法:
$.ajaxSetup({
headers: { "CustomHeader": "myValue" }
});
这样,每个将来的 ajax 请求都将包含自定义标头,除非被请求的选项显式覆盖。您可以在此处找到更多信息ajaxSetup