ZZJ
2022-07-15 b35ae89a354d29643af99cc150812241b940352d
src/scripts/httpRequest.ts
@@ -2,7 +2,7 @@
import axios from 'axios'
import qs from 'qs'
import { Notification } from 'element-ui'
// import router from '@/router'
 import router from '@/router'
const Axios = axios.create({
  responseType: 'json',
@@ -12,27 +12,37 @@
/* //POST传参序列化(添加请求拦截器) */
Axios.interceptors.request.use(
  config => {
    // config.data = JSON.stringify(config.data)
    // let Public = {};
    // if (
    //   config.method === "post" ||
    //   config.method === "put" ||
    //   config.method === "delete"
    // ) {
    //   // 序列化
    //   // config.data = qs.stringify(config.data);
    //   // config.data = qs.stringify(Object.assign(Public, config.data));
    // } else {
    //   config.method = "get";
    //   config.params = Object.assign(Public, config.data);
    // }
    // config.headers = {
    //   "X-Requested-With": "XMLHttpRequest",
    //   Accept: "application/json",
    //   "Content-Type": "application/json; charset=UTF-8"
    // };
    console.log(9898);
    console.log(config);
    if (
      config.method === "post" &&
      sessionStorage.getItem('clusterId') ||
      sessionStorage.getItem('devId')
    ) {
      if( !config.data ) {
        config.data = {}
      }
      if(typeof config.data == 'object' ) {
       config.data.clusterId = sessionStorage.getItem('clusterId')
       config.data.devId = sessionStorage.getItem('devId')
      }
      if(config.url === '/saas/api-s/camera/rule/getLinkRulesByCameraIds') {
         config.data.devId = sessionStorage.getItem('cameraDevId')
      }
      //后门
      if(config.url === '/saas/api-d/device/userClusterInfo') {
         config.data.clusterId = ''
      }
    }
    // 若是有做鉴权token , 就给头部带上token
    let token =
      sessionStorage.getItem('loginedInfo') &&
      JSON.parse(sessionStorage.getItem('loginedInfo')).access_token
@@ -42,6 +52,10 @@
    return config
  },
  error => {
    console.log('请求错误');
    console.log(error);
    /*  Message({
      showClose: true,
      message: "提交出错,请联系管理员!",
@@ -78,13 +92,31 @@
    //   window.sessionStorage.setItem('policeCameravideoIsLoginTimeout', JSON.stringify(true))
    // }
          var disposition = res.headers["content-disposition"];
          if(disposition) {
             var fileName = disposition.substring(disposition.indexOf("=") + 1);
             console.log(res);
             return {
               fileName:fileName,
               body:res
             }
          }
    return res.data ? res.data : {}
    /* //return res.data ? res.data : {}; */
  },
  error => {
    console.log('响应错误');
    console.log(error);
    let errJson: any = {
      success: false
    }
    if(error && error.response&&error.response.status == 404) {
      return
    }
    // 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
    if (error && error.response) {
@@ -96,10 +128,9 @@
        case 401:
          errJson.status = error.response.status
          errJson.message = '未授权,请重新登录(401)'
          window.parent.postMessage({
            msg: "logout"
          }, '*')
          // console.log("标志位:",AuthData.isLoginout)
          router.push({
             path: '/login'
           })
          // if (!AuthData.isLoginout) {
          //   Notification({
          //     title:"",
@@ -130,26 +161,7 @@
        case 500:
          errJson = error.response.data
          break
        // case 501:
        //   errJson.status = error.response.status;
        //   errJson.message = "服务未实现(501)";
        //   break;
        // case 502:
        //   errJson.status = error.response.status;
        //   errJson.message = "网络错误(502)";
        //   break;
        // case 503:
        //   errJson.status = error.response.status;
        //   errJson.message = "服务不可用(503)";
        //   break;
        // case 504:
        //   errJson.status = error.response.status;
        //   errJson.message = "网络超时(504)";
        //   break;
        // case 505:
        //   errJson.status = error.response.status;
        //   errJson.message = "HTTP版本不受支持(505)";
        //   break;
        default:
          errJson.status = error.response.status
          errJson.message = `连接出错(${error.response.status})!`
@@ -157,18 +169,30 @@
    } else {
      errJson.message = '连接服务器失败!'
      Notification({
        title: '',
        showClose: true,
        message: '连接服务器失败!',
        type: 'error'
      })
      // router.push({
      //   path: '/login'
      // });
    }
    if(error.response&&error.response.data&&!error.response.data.success ) {
      errJson.message =error.response.data.msg
    }
    if(error.response.status == 401) {
      return
    }
     Notification({
        title: '错误',
        showClose: true,
        message:errJson.message,
        type: 'error'
      })
    // 返回 response 里的错误信息
    return Promise.reject(errJson)
  }
)
Axios.defaults.timeout = 10000
export default Axios