一、安装引入axios(npm安装,var axios = require(‘axios’))
二、新建一个js文件随便叫什么名字,比如axios.js
三、设置请求的基础路径(域名,ip等)
// 配置API接口基础地址
// axios.defaults.baseURL = process.env.API_ROOT(来回切换)
// axios.defaults.baseURL = ‘http://10.8.8.8:8080/wanhai’
axios.defaults.baseURL = ‘https://wanhai.duo-ai.com/wanhai’
四、token验证
let headers = `${
!localStorage.getItem('headers') ? null : localStorage.getItem('headers')}`
axios.defaults.headers.authorization = headers
需要判断是否有,有就带上。token在登录成功返回时保存(vuex、localStorage等)
五、axios.interceptors.request.use(config =>{})请求拦截
所有请求都会经过这里,可以做一些特殊配置。
六、axios.interceptors.response.use(funtion(response){})响应拦截可以对响应的数据做处理response
七、开始封装axios的get、post等
全部代码:
// 引用 axios
var axios = require('axios')
const qs = require('qs')
// 配置API接口基础地址
// axios.defaults.baseURL = process.env.API_ROOT
// axios.defaults.baseURL = 'http://10.8.8.8:8080/wanhai'
axios.defaults.baseURL = 'https://wanhai.duo-ai.com/wanhai'
// token验证
axios.defaults.headers.common['Content-Type'] = 'application/json'
let headers = `${
!localStorage.getItem('headers') ? null : localStorage.getItem('headers')}`
axios.defaults.headers.authorization = headers
console.log(axios.defaults)
// 请求的拦截器,所有的请求都会经过这个拦截器
axios.interceptors.request.use(config => {
// Do something before request is sent
const token = localStorage.getItem('token')
// 为每个请求头都添加认证TOKEN,注意由于后台使用的是JSON WEB TOKEN,
// 所有token 之前要带上 Bearer空格
// 当我们在请求头里带上token的时候,浏览器默认将这个请求视作复杂请求
/* 当请求被视作复杂请求的时候,浏览器会对服务器发起两次请求
第一次请求: OPTIONS,这个请求的作用,检测是否能够正常连接服务器
第二次请求: get/post,这个请求就是正式请求数据
*/
// ['Content-Type']请求头类型的定义
config.headers.common['Content-Type'] = 'application/json'
config.headers.authorization = 'Bearer ' + token
return config
}, error =