vue项目对axios的全局配置

Posted 青云码上

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue项目对axios的全局配置相关的知识,希望对你有一定的参考价值。

标准的vue-cli项目结构(httpConfig文件夹自己建的):

api.js:

//const apiUrl = \'http://test\';//测试域名,自己改成自己的
 const apiUrl = \'http://xxoo\';//线上域名,自己改成自己的 

export default apiUrl

http.js:

/**
 * ajax请求配置
 */
import axios from \'axios\'
import apiURL from \'./api.js\'
//import Qs from \'qs\'

import cookie from \'../../static/js/cookie.js\'

// axios默认配置
axios.defaults.timeout = 10000;   // 超时时间
axios.defaults.baseURL = apiURL;  // 默认地址

//整理数据
axios.defaults.transformRequest = function (data) {
//data = Qs.stringify(data);
data = JSON.stringify(data);
  return data;
};

// 路由请求拦截
// http request 拦截器
axios.interceptors.request.use(
  config => {
    //config.data = JSON.stringify(config.data);  
    config.headers[\'Content-Type\'] = \'application/json;charset=UTF-8\';
    //判断是否存在ticket,如果存在的话,则每个http header都加上ticket
    if (cookie.get("token")) {
        //用户每次操作,都将cookie设置成2小时
        cookie.set("token",cookie.get("token") ,1/12)    
        cookie.set("name",cookie.get("name") ,1/12)
     config.headers.token = cookie.get("token");
     config.headers.name= cookie.get("name");
    }
    
    return config;
  },
  error => {
    return Promise.reject(error.response);
  });

// 路由响应拦截
// http response 拦截器
axios.interceptors.response.use(
  response => {
    if (response.data.resultCode=="404") {
        console.log("response.data.resultCode是404")
        // 返回 错误代码-1 清除ticket信息并跳转到登录页面
//      cookie.del("ticket")
//      window.location.href=\'http://login.com\'
        return
    }else{
        return response;
    }
  },
  error => {
    return Promise.reject(error.response)   // 返回接口返回的错误信息
  });
export default axios;

main.js

import axios from \'./httpConfig/http\'
Vue.prototype.$http = axios

请求示例:

//post
this
.$http.post(\'/itemProps/addItemProps\',{   name: this.name,   parentId:this.parentId,   sortOrder:0 }).then((res)=>{
  console.log(res) }).
catch((err)=>{ alert("请求失败") })
//get
this.$http.get("/roles/getPersonnelInfoRoles",{
  params:{
    key:"value"
  }
}).then((res) => {
  console.log(res)
}).catch((err)=>{
  alert("请求失败")
})

 

以上是关于vue项目对axios的全局配置的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装

vue-cli的项目中关于axios的全局配置

vue项目axios的使用实例详解

Luffy项目:3前端调整(全局css全局配置全局axios...),后端主页轮播图表设计,接口部分代码编写