第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

前端有沒有統(tǒng)一跳轉(zhuǎn)的工具

前端有沒有統(tǒng)一跳轉(zhuǎn)的工具

慕尼黑5688855 2018-10-12 17:35:20
開發(fā)環(huán)境:前端react后端java原來是在返回值中看code是多少,來決定是否跳轉(zhuǎn)到登錄界面。只在某幾個接口設(shè)置了跳轉(zhuǎn)?,F(xiàn)在未登錄狀態(tài)下,后端的接口都會返回401.有沒有什么工具,能統(tǒng)一設(shè)置。對于所有的接口,如果請求接口返回狀態(tài)是401就跳轉(zhuǎn)到登錄頁面去?
查看完整描述

2 回答

?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗 獲得超4個贊

// 攔截ajax請求,檢測是否超時,以重新登錄

$(document).ajaxComplete((event, xhr, settings) => {

    if (xhr.status === 200) {

        if (settings.dataType === 'json' && xhr.responseJSON !== void 0) {

            let result = xhr.responseJSON;

            if (2001 === result.code) {

                // 沒有session登錄信息時跳轉(zhuǎn)至登錄頁

                global.location.href = "/main-login.html";

            }

        }

    } else if (xhr.status === 401) {} else {

         global.location.href = "/main-login.html";

    }

});

export default function(options) {

    const defaultOptions = {

        dataType: 'json',

        cache: true,

        jsonp: 'callback'

    };

    options.data = processRequest(options);

    //url這里加一些代理路徑。。。

    options.url = options.url;


    options.headers = {

        "Accept": "application/json",

        "Content-Type": "application/json"

    };


    return $.ajax({...defaultOptions, ...options }).then(processResponse);

};

// 標(biāo)準(zhǔn)化傳給后臺的參數(shù)

function processRequest(r) {

    const str = r.data || {};

    if ('get' == r.method) {

        if ($.isEmptyObject(str) || null == str) {

            return {

                t: new Date().getTime()

            };

        } else {

            return {

                //添加時間戳隨機數(shù)

                params: JSON.stringify(str),

                t: new Date().getTime()

            };

        }

    } else {

        return JSON.stringify(str);

    }

}


// 標(biāo)準(zhǔn)化后臺相應(yīng)數(shù)據(jù)格式

function processResponse(r) {

    let str = {};

    if (r.rows) {

        str = r;

        str.code = 0;

        str.list = r.rows;

        delete str.rows;

    } else {

        if (!r.error) {

            if (0 <= r.code) {

                str = r;

            } else {

                str.code = 0;

                str.data = r;

            }

        } else {

            str.code = -1;

            str.message = r.message || r.error;

        }

    }

    return str;

}


查看完整回答
反對 回復(fù) 2018-10-27
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗 獲得超15個贊

難道你的每個接口都直接調(diào)用了XMLHttpRequest嗎?
建議將XMLHttpRequest封裝成ajax方法提供給調(diào)用接口使用,在這個ajax方法中對返回的body json的狀態(tài)碼進行判斷及跳轉(zhuǎn)

查看完整回答
反對 回復(fù) 2018-10-27
  • 2 回答
  • 0 關(guān)注
  • 829 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號