1. 程式人生 > 實用技巧 >vue 中axios

vue 中axios

import axios from "axios";
import { Message } from "element-ui";
import router from "../router/index";
const NODE_ENV = process.env.NODE_ENV;

let http = axios.create({
    baseURL: NODE_ENV === "development" ? "/api(開發環境)" : "正式環境後臺地址", // 開發環境/正式環境(打包後)
    withCredentials: true,
    headers: {
        
"Content-Type": "application/json", "Token": '' }, }); function apiAxios(method, url, params, response) { http({ method: method, url: url, data: method === "POST" || method === "PUT" ? params : null, params: method === "GET" || method === "DELETE" ? params : null
, }).then(function (res) { response(res); }).catch(function (err) { response(err); }) } // 新增請求攔截器 http.interceptors.request.use(function (config) { const token = localStorage.getItem("token") || ""; config.headers['Token'] = token; return config; }, function (error) {
return Promise.reject(error); }); // 新增響應攔截器 http.interceptors.response.use(function (response) { return response; }, function (error) { if(error.response.data.message == "token資訊失效") { Message({ showClose: true, message: "身份資訊失效,請重新登入!", type: "warning" }); setTimeout(function(){
// 清除token 跳轉登入頁 localStorage.removeItem(
"token"); router.push({ path: "/" }) },2000); } return Promise.reject(error); });
export
default { get: function (url, params, response) { return apiAxios("GET", url, params, response) }, post: function (url, params, response) { return apiAxios("POST", url, params, response) }, put: function (url, params, response) { return apiAxios("PUT", url, params, response) }, delete: function (url, params, response) { return apiAxios("DELETE", url, params, response) } }