| | |
| | | import axios from 'axios' // 引入axios |
| | | import qs from 'qs' // 引入qs |
| | | import store from '../store' |
| | | import APIUrl from './api.url' // 引入api.url.js |
| | | import router from '../router' |
| | | import axios from "axios"; // 引入axios |
| | | import qs from "qs"; // 引入qs |
| | | import store from "../store"; |
| | | import APIUrl from "../config/index"; // 引入config |
| | | import router from "../router"; |
| | | import { Message } from "element-ui"; |
| | | |
| | | // axios 默认配置 更多配置查看Axios中文文档 |
| | | axios.defaults.timeout = 50000 // 超时默认值 |
| | | axios.defaults.baseURL = APIUrl.baseURL // 默认baseURL |
| | | // axios.defaults.responseType = 'json' // 默认数据响应类型 |
| | | axios.defaults.headers.common['Content-Type'] = 'application/json;charset=UTF-8' |
| | | axios.defaults.withCredentials = true // 表示跨域请求时是否需要使用凭证 |
| | | axios.defaults.timeout = 50000; // 超时默认值 |
| | | axios.defaults.baseURL = APIUrl.baseURL; // 默认baseURL |
| | | axios.defaults.responseType = "json"; // 默认数据响应类型 |
| | | // axios.defaults.headers.common["Content-Type"] = |
| | | // "application/json;charset=UTF-8"; |
| | | axios.defaults.headers.common["Content-Type"] = |
| | | "application/x-www-form-urlencoded"; |
| | | axios.defaults.withCredentials = true; // 表示跨域请求时是否需要使用凭证 |
| | | |
| | | // http request 拦截器 |
| | | // 在ajax发送之前拦截 比如对所有请求统一添加header token |
| | | axios.interceptors.request.use( |
| | | config => { |
| | | // config.data = JSON.stringify(config.data); |
| | | // config.headers = { |
| | | // 'Content-Type':'application/x-www-form-urlencoded' |
| | | // }; |
| | | // if (token) { |
| | | // if (store.state.userId) { |
| | | // config.headers.Authorization = `token ${store.state.userId}`; |
| | | // } |
| | | // console.log(config) |
| | | var token = window.localStorage.getItem('tokens'); |
| | | config.headers["USERTOKEN"] = token ? token : ''; |
| | | return config |
| | | (config) => { |
| | | config.headers["lang"] = localStorage.getItem("language") |
| | | ? localStorage.getItem("language") |
| | | : "en"; |
| | | var token = store.state.token || window.localStorage.getItem("tokens"); |
| | | config.headers["USERTOKEN"] = token ? token : ""; |
| | | return config; |
| | | }, |
| | | err => { |
| | | return Promise.reject(err) |
| | | (err) => { |
| | | return Promise.reject(err); |
| | | } |
| | | ) |
| | | ); |
| | | |
| | | // http response 拦截器 |
| | | // ajax请求回调之前拦截 对请求返回的信息做统一处理 比如error为401无权限则跳转到登陆界面 |
| | | axios.interceptors.response.use( |
| | | response => { |
| | | if (response.data.msg) { |
| | | if (response.data.msg.indexOf('請先登錄') > -1 || response.data.msg.indexOf('請先登陸') > -1) { |
| | | response.data.msg = '您還未登錄,請先登錄' |
| | | window.localStorage.removeItem('tokens') |
| | | store.state.haslogin = false |
| | | //console.log(response.data) |
| | | router.replace({ |
| | | path: 'login', |
| | | }) |
| | | } |
| | | (response) => { |
| | | // console.log("response", response); |
| | | // 需要登录确没有登录时跳转到登录页面 |
| | | if (response.data && response.data.status === 401) { |
| | | store.commit("undataToken", null); |
| | | window.localStorage.removeItem("USERTOKEN"); |
| | | router.push("/login"); |
| | | Message({ |
| | | message: response.data.msg, |
| | | type: "warning", |
| | | }); |
| | | return response.data; |
| | | } |
| | | return response |
| | | // 正常通过获取到数据时 |
| | | else if (response.data.status === 0) { |
| | | return response.data; |
| | | } |
| | | // 其他错误时 |
| | | else { |
| | | Message({ |
| | | message: response.data.msg, |
| | | type: "warning", |
| | | }); |
| | | return response.data; |
| | | } |
| | | }, |
| | | error => { |
| | | console.log(error) |
| | | return Promise.reject(error) |
| | | (error) => { |
| | | console.log("error", error); |
| | | // return Promise.reject(error); |
| | | return error; |
| | | } |
| | | ) |
| | | ); |
| | | |
| | | export default axios // 这句千万不能漏下!!! |
| | | export default axios; // 这句千万不能漏下!!! |
| | | |
| | | /** |
| | | * post 方法封装 |
| | |
| | | * @param data |
| | | * @returns {Promise} |
| | | */ |
| | | export function post (url, data = {}) { |
| | | export function post(url, data = {}) { |
| | | return new Promise((resolve, reject) => { |
| | | axios.post(url, qs.stringify(data)) |
| | | .then(response => { |
| | | resolve(response.data) |
| | | }, err => { |
| | | reject(err) |
| | | }) |
| | | }) |
| | | axios.post(url, qs.stringify(data)).then( |
| | | (response) => { |
| | | resolve(response); |
| | | }, |
| | | (err) => { |
| | | console.log("post err", err); |
| | | reject(err); |
| | | } |
| | | ); |
| | | }); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param data |
| | | * @returns {Promise} |
| | | */ |
| | | export function get (url, data = {}) { |
| | | export function get(url, data = {}) { |
| | | return new Promise((resolve, reject) => { |
| | | axios.get(url, { params: data }) |
| | | .then(response => { |
| | | resolve(response.data) |
| | | }, err => { |
| | | reject(err) |
| | | }) |
| | | }) |
| | | axios.get(url, { params: data }).then( |
| | | (response) => { |
| | | resolve(response); |
| | | }, |
| | | (err) => { |
| | | console.log("get err", err); |
| | | // reject(err); |
| | | } |
| | | ); |
| | | }); |
| | | } |
| | | |
| | | /** |