前端怎么在響應頭和請求頭里面拿數據?


今天碰到一個比較困難的問題,對於前端小白來說一臉懵逼。問題就是怎么在響應頭里面獲取token,對於token想必大家都不陌生,但是到響應頭里面獲取token還是頭一次。之前token都是后端返回給前端,聽到這個需求之后,心中萬馬奔騰。接下來就是vue中的axios怎么從響應頭里面拿token:


   axios.interceptors.response.use( response => {  //axios攔截器
    if (response.status === 200) {  //響應成功后
        if(response.headers['Authorization']){  //獲取響應頭里面的數據,**Authorization根據你響應頭里面的數據獲取,並不是唯一值**
            downLoad(response.data,response.headers['Authorization'].split(';')[1].split('=')[1]);
        }
        return Promise.resolve(response);
    } else {
        return Promise.reject(response);
    }
    }, error => {  //報錯后的處理,這里不是重點,
    // 服務器狀態碼不是200的情況
    if (error.response.status) {
        switch (error.response.status) {
            case 401:
            Notification.error({
                title: '錯誤',
                message: '登錄過期,請重新登錄'
            });
        // 清除token
        localStorage.removeItem('token');
        store.commit('loginSuccess', null);
        setTimeout(() => {
            router.replace({
                path: '/login',
                query: {
                    redirect: router.currentRoute.fullPath
                }
            });
        }, 1000);
    break;
    case 404:
        Notification.error({
            title: '錯誤',
            message: '網絡請求不存在',
        });
    break;
    case 504:
        Notification.error({
            title: '錯誤',
            message: '服務器內部異常',
        });
    break;
    // 其他錯誤,直接拋出錯誤
    default:
        Notification.error({
            title: '錯誤',
            message: error.response.data.message
        });
}
    return Promise.reject(error.response);

    }
});

詳情見axios鏈接 https://www.kancloud.cn/yunye/axios/234845

每天改一個bug,成長一大步


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM