jQuery.ajaxPrefilter() 函數(shù)使用

$.ajaxPrefilter()函數(shù)用于指定預(yù)先處理Ajax參數(shù)選項(xiàng)的回調(diào)函數(shù)

ajax請(qǐng)求攔截器 每次發(fā)送ajax請(qǐng)求前先攔截拼接url地址

語法

$.ajaxPrefilter( [ dataType ,] handler )

ajax的正常請(qǐng)求狀態(tài)

        $.ajax({
            type: "method",
            url: "url",
            data: "data",
            dataType: "dataType",
            success: function (response) {
                // 成功狀態(tài)要執(zhí)行的回調(diào)函數(shù)
            }
        });

如果一次開發(fā)需要多次重復(fù)調(diào)用接口,又或者后期項(xiàng)目需要更換接口地址,為方便維護(hù),可以設(shè)置ajax請(qǐng)求攔截器,為每次ajax請(qǐng)求發(fā)送之前做一些配置。

參數(shù)

dataType

一個(gè)或多個(gè)用空格隔開的數(shù)據(jù)類型所組成的字符串。如果未指定該參數(shù),則表示所有數(shù)據(jù)類型??捎玫臄?shù)據(jù)類型為"xml"、 "html"、 "text"、 "json"、 "jsonp"、 "script"。該字符串為它們之間的任意組合(多種類型用空格隔開),例如:"xml"、 "text html"、 "script json jsonp"。

handler

用于預(yù)處理參數(shù)選項(xiàng)的回調(diào)函數(shù)。它有以下3個(gè)參數(shù):

  • options:(Object對(duì)象)當(dāng)前AJAX請(qǐng)求的所有參數(shù)選項(xiàng)。
  • originalOptions:(Object對(duì)象)值作為提供給Ajax方法未經(jīng)修改的選項(xiàng),因此,沒有ajaxSettings設(shè)置中的默認(rèn)值
  • jqXHR:當(dāng)前請(qǐng)求的jqXHR對(duì)象。

返回值

$.ajaxPrefilter()函數(shù)沒有返回值,或者說其返回值為undefined。

$.ajaxPrefilter((options) => {
    options.url = 'http://地址' + options.url;

    // 配置ajax請(qǐng)求頭 當(dāng)請(qǐng)求地址為/my的時(shí)候添加請(qǐng)求頭
    if (options.url.indexOf('/my/') != -1) {
        options.headers = {
            Authorization: localStorage.getItem('token') || ''
        }
    }

    // 無論請(qǐng)求成功還是失敗,最終調(diào)用complete回調(diào)
    options.complete = function(res) {
        if (res.responseJSON.status == 1 && res.responseJSON.message == '身份認(rèn)證失敗!') {
            localStorage.removeItem('token');
            location.href = '/login.html';
        }
    }
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容