commonsec.js 3.3 KB
import axios from "axios";
// import {
//     MessageBox,
//     Message
// } from 'element-ui'
// import store from '@/store'
// import storage from './storage'
import { Toast } from "vant";
// 创建  axios instance
const service = axios.create({
    baseURL: "https://app.chinesenooddles.com", // url = base url + request url
    // withCredentials: true, // 跨域请求时发送cookies
    timeout: 5000 // 请求超时
});
// 请求拦截器
service.interceptors.request.use(
    config => {
        // 在Vuex中 getters 获取一下token
        if (localStorage.getItem("token")) {
            // 让每个请求都携带 token
            // 自定义['X-Token']
            // 设置headers 中的 ['X-Token'] =  storage.get('token')
            //   config.headers['token'] = localStorage.getItem('token')
        }
        return config;
    },
    error => {
        // 处理请求错误
        console.log(error); // for debug
        return Promise.reject(error);
    }
);

// 响应拦截器
service.interceptors.response.use(
    /**
     *如果您想要获取诸如头或状态之类的http信息
     *请返回response=>response
     */
    /**
     *通过自定义代码确定请求状态
     *您还可以通过HTTP状态代码判断状态
     */
    response => {
        console.log(response);
        const res = response.data;
        // 如果自定义代码不是200,则判断为错误。
        if (res.code !== 1) {
            return Promise.reject(res);
            // Toast({
            //           message: res.message || 'Error',
            //           type: 'error',
            //           duration: 5 * 1000
            //       })
            //       // 50008:非法令牌;50012:其他客户端登录;50014:令牌过期
            //   if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
            //       // 重新登录
            //       MessageBox.confirm('您已注销,您可以取消停留在此页,或重新登录', 'Confirm logout', {
            //           confirmButtonText: 'Re-Login',
            //           cancelButtonText: 'Cancel',
            //           type: 'warning'
            //       }).then(() => {
            //           store.dispatch('user/resetToken').then(() => {
            //               location.reload()
            //           })
            //       })
            //   }
            //     return Promise.reject(new Error(res.message || 'Error'))
        } else {
            return res;
        }
    },
    error => {
        console.log("err" + error); // for debug
        //         Message({
        //             message: error.message,
        //             type: 'error',
        //             duration: 5 * 1000
        //         })
        return Promise.reject(error);
    }
);

export { service };

export function uploadFile(Url, data) {
    //上传图片的方法
    return new Promise((resolve, reject) => {
        let instance = axios.create({
            baseURL: "https://app.chinesenooddles.com/api/",
            headers: {
                "Content-Type": "multipart/form-data"
            }
        });
        instance
            .post(Url, data)
            .then(res => {
                resolve(res.data.data);
            })
            .catch(error => {
                reject(error.data);
            });
    });
}