import axios from 'axios'
import store from '@/store'
//引入适配器
import mpAdapter from 'axios-miniprogram-adapter'
import {
API_HOST,
API_TIME_OUT
} from '@/config/http'
axios.defaults.adapter = mpAdapter
const http = axios.create({
baseURL: API_HOST,
timeout: API_TIME_OUT
})
// 请求拦截
http.interceptors.request.use(config => {
//每个请求的数据中设置请求头
config.headers['Authorization'] = `Bearer ${store.state.user.token}`
// console.log(config.headers['Authorization'])
return config
}, error => {
return Promise.reject(error)
})
// 响应拦截
http.interceptors.response.use(response => {
return response.data
}, error => {
return error
});
axios.defaults.adapter = function(config) { //定义适配器,用来适配uniapp的语法
return new Promise((resolve, reject) => {
const settle = require(axios);
const buildURL = require(axios);
const baseURL = config.baseURL ? config.baseURL : '';
uni.request({
method: config.method.toUpperCase(),
url: config.baseURL + buildURL(config.url, config.params, config.paramsSerializer),
header: config.headers,
data: config.data,
dataType: config.dataType,
responseType: config.responseType,
sslVerify: config.sslVerify,
complete: function complete(response) {
response = {
data: response.data,
status: response.statusCode,
errMsg: response.errMsg,
header: response.header,
config: config
};
settle(resolve, reject, response)
}
})
})
}
export default http
config.headers['Authorization'] = `Bearer ${store.state.user.token}`
就是这句,能在请求的打印出来就是请求数据的时候获取不到,整了一天各种办法都试了!
经过多番折腾,发现是axios 和axios-miniprogram-adapter 适配器版本的问题,
最后换成如下版本,问题完美解决!
用这个命令:npm install axios@0.25.0 --save