$.ajaxPrefilter()函數(shù)用于指定預先處理Ajax參數(shù)選項的回調(diào)函數(shù)
ajax請求攔截器 每次發(fā)送ajax請求前先攔截拼接url地址
語法
$.ajaxPrefilter( [ dataType ,] handler )
ajax的正常請求狀態(tài)
$.ajax({
type: "method",
url: "url",
data: "data",
dataType: "dataType",
success: function (response) {
// 成功狀態(tài)要執(zhí)行的回調(diào)函數(shù)
}
});
如果一次開發(fā)需要多次重復調(diào)用接口,又或者后期項目需要更換接口地址,為方便維護蹈垢,可以設置ajax請求攔截器,為每次ajax請求發(fā)送之前做一些配置氮唯。
參數(shù)
dataType
一個或多個用空格隔開的數(shù)據(jù)類型所組成的字符串。如果未指定該參數(shù),則表示所有數(shù)據(jù)類型〉聪荩可用的數(shù)據(jù)類型為"xml"、 "html"套菜、 "text"亲善、 "json"设易、 "jsonp"逗柴、 "script"。該字符串為它們之間的任意組合(多種類型用空格隔開)顿肺,例如:"xml"戏溺、 "text html"、 "script json jsonp"屠尊。
handler
用于預處理參數(shù)選項的回調(diào)函數(shù)旷祸。它有以下3個參數(shù):
- options:(Object對象)當前AJAX請求的所有參數(shù)選項。
- originalOptions:(Object對象)值作為提供給Ajax方法未經(jīng)修改的選項讼昆,因此托享,沒有ajaxSettings設置中的默認值
- jqXHR:當前請求的jqXHR對象。
返回值
$.ajaxPrefilter()函數(shù)沒有返回值,或者說其返回值為undefined闰围。
$.ajaxPrefilter((options) => {
options.url = 'http://地址' + options.url;
// 配置ajax請求頭 當請求地址為/my的時候添加請求頭
if (options.url.indexOf('/my/') != -1) {
options.headers = {
Authorization: localStorage.getItem('token') || ''
}
}
// 無論請求成功還是失敗赃绊,最終調(diào)用complete回調(diào)
options.complete = function(res) {
if (res.responseJSON.status == 1 && res.responseJSON.message == '身份認證失敗羡榴!') {
localStorage.removeItem('token');
location.href = '/login.html';
}
}
})