vue axios http 請求 響應攔截


加油~

main.js文件

import axios from "./http";
Vue.prototype.$axios = axios;

 

http.js 文件

import axios from "axios";
import Qs from "qs";

if (process.env.NODE_ENV === "development") {
  // 設置默認本地axios提交url
  axios.defaults.baseURL = "http/https";
} else {
  // 設置默認線上axios提交url
  axios.defaults.baseURL = "http/https";
}
axios.defaults.headers.post["Content-Type"] =
  "application/x-www-form-urlencoded";
// 請求攔截
axios.interceptors.request.use(
  config => {
    if (config.method == "post") {
      // eslint-disable-next-line no-self-assign
      config.data = config.data; //防止post請求參數無法傳到后台
    }
    config.data = {
      ...config.data,
      access_token: token (有需要統一頭部添加token)
    };
    config.data = Qs.stringify(config.data);
    return config;
  },
  error => {
    return Promise.reject(error);
  }
);
// 響應攔截
axios.interceptors.response.use(
  function(res) {
    // 如果賬號在其他地方登陸
    if (res.data.errcode === "2") {
      //  提示錯誤
      Toast({
        message: "異地登錄",
        duration: 1500
      });
      setTimeout(function() {
        sessionStorage.clear();
        router.replace({
          path: "/login"
        });
      }, 1500);
      return false;
    }
    return res;
  },
  function(error) {
    return Promise.reject(error);
  }
);
export default axios;

 


免責聲明!

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



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