前言
$.ajaxSetup方法用于设置AJAX的全局默认设置。之后执行的所有AJAX请求,如果对应的选项参数没有设置,将使用更改后的默认设置。
这方便我们设置error 统一返回样式。
示例
设置全局默认
// 设置AJAX的全局默认选项
$.ajaxSetup( {
url: "/login" , // 默认URL
aysnc: true , // 异步加载
type: "POST" , // 默认使用POST方式
contentType: "application/json",
data:{
"name":"yo yo" //默认添加额外参数
},
headers: { // 默认添加请求头
"Authorization": "Bearer xxxxtokenxxx" ,
} ,
error: function(jqXHR, textStatus, errorMsg){ // 出错时默认的处理函数
// jqXHR 是经过jQuery封装的XMLHttpRequest对象
// textStatus 可能为: null、"timeout"、"error"、"abort"或"parsererror"
// errorMsg 可能为: "Not Found"、"Internal Server Error"等
console.log( '操作异常:' + errorMsg );
}
});
ajax发一个请求,参数都不传
// ajax请求, 什么也不传,拿默认设置
$.ajax();
此时会用默认的配置发post请求,访问/login
地址
可以传url和type 参数改变默认值
$.ajax({
url: "/demo" , // 设置参数改变默认值
type: "GET" ,
});
Authorization 认证
如果每个请求都需要传Authorization 头部参数,可以设置全局配置
// 设置AJAX的全局默认选项
$.ajaxSetup( {
headers: { // 默认添加请求头
"Authorization": "Bearer xxxxtokenxxx" ,
} ,
error: function(jqXHR, textStatus, errorMsg){ // 出错时默认的处理函数
// jqXHR 是经过jQuery封装的XMLHttpRequest对象
// textStatus 可能为: null、"timeout"、"error"、"abort"或"parsererror"
// errorMsg 可能为: "Not Found"、"Internal Server Error"等
console.log( '操作异常:' + errorMsg );
}
});
// ajax请求
$.ajax({
url: "/demo", // 设置参数改变默认值
type: "POST",
data: JSON.stringify({
user: 'test'
}),
contentType: "application/json",
});
后面所有的ajax请求都会带上请求头部"Authorization": "Bearer xxxxtokenxxx"
POST http://127.0.0.1:5500/demo HTTP/1.1
Connection: keep-alive
Authorization: Bearer xxxxtokenxxx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36
Content-Type: application/json
Accept: */*
X-Requested-With: XMLHttpRequest
{"user":"test"}