引入过程中遇到两个问题
引入后页面空白
原因:引入axios版本过高,卸掉重新安装低版本
卸载:npm uninstall axios
安装低版本:npm install axios@0.17.2 --save
报错t.is not a function
原因:uniapp和小程序之间网络不兼容
解决方法:增加网络适配器
新增文件axios-dapter.js
import axios from 'axios'
// 适配小程序网络请求
axios.defaults.adapter = function (config) {
return new Promise((resolve, reject) => {
var settle = require('axios/lib/core/settle');
var buildURL = require('axios/lib/helpers/buildURL');
const url = new RegExp('^http(s)?://').test(config.url) ? config.url : config.baseURL + config.url // 判断时相对路径还是绝对路径,相对路径添加config.baseURL
uni.request({
method: config.method.toUpperCase(),
url: buildURL(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);
}
})
})
}
并在main.js中引入使用
import "@/common/axios-dapter.js"
适配器代码来源:https://www.cnblogs.com/iPing9/p/13696764.html
单独页面使用axios示例
引入
import axios from 'axios'
使用
axios.defaults.baseURL = 'https://api.jsipark.cn'
axios({
method: 'POST',
url: '/v3/member/wx/app/plateAuth',
headers: {
"clientType": '2',
"Content-Type": "application/json",
"withCredentials": true,
},
data: {
},
}).then(res => {
console.log(res, 'morerrrrrr')
}).catch(err => {
console.log(err, 'errrrrrrrr')
})