美文网首页
ajax 及 axios添加全局拦截器 请求及响应 添加tok

ajax 及 axios添加全局拦截器 请求及响应 添加tok

作者: Spidd | 来源:发表于2019-08-14 11:22 被阅读0次

    qs = qs.js 库

    axios

    axios.interceptors.request.use(config => {
      let storage=window.localStorage;
      /*拦截请求添加token*/
      if(storage){
        let info = JSON.parse(storage['ngStorage-userInfo']);
        let data = qs.parse(config.data);
        data.token = info.token;
        config.data = qs.stringify(data);
      }
      /**            loading-box{            **/
      // let loading = Loading.service({
      //   fullscreen: true,
      //   text: '拼命加载中...'
      // /**            loading-box}            **/
      // })
      return config
    }
    

    ajax

    /*ajax 拦截添加token到body*/
    $.ajaxSetup({
      dataType: "json",
      cache: false,
      beforeSend: function() {
        let data = qs.parse(arguments[1].data);
        data.token = store.state.info.token;
        arguments[1].data = qs.stringify(data);
      }
    });
    
    /*ajax拦截添加token到Header*/
    let token = Cookies.get("Token");
    $.ajaxSetup({
      dataType: "json",
      cache: false,
      beforeSend: function(request) {
        request.setRequestHeader("token", token);
      },
      dataFilter: function(data) {
        let newData = $.parseJSON(data).message
        if(newData && newData.data && newData.data.State && newData.data.State == 401){
          return Promise.reject('token验证错误!')
        }
        return data
      }
    });
    

    相关文章

      网友评论

          本文标题:ajax 及 axios添加全局拦截器 请求及响应 添加tok

          本文链接:https://www.haomeiwen.com/subject/wmxgjctx.html