在uniapp中,使用axios进行请求时,uniapp无法使用axios的适配器,需要基于uni.request
来定义适配器。
安装完成axios后在项目utils目录下建一个axios文件夹
文中根目录代表utils中的axios文件夹
在根目录新建一个axios.js文件,在该文件中配置一个新的axios
import axios from "axios";
const service = axios.create({
withCredentials: true,
crossDomain: true,
baseURL: '***',
timeout: 6000
})
在根目录建一个lib文件夹,在这个文件夹里建一个adapter.js文件,该文件配置了基于uniapp的axios适配,记得抛出这个适配器
import settle from "axios/lib/core/settle"
import buildURL from "axios/lib/helpers/buildURL"
/* 格式化路径 */
const URLFormat = function (baseURL, url) {
return url.startsWith("http") ? url : baseURL
}
/* axios适配器配置 */
const adapter = function (config) {
return new Promise((resolve, reject) => {
uni.request({
method: config.method.toUpperCase(),
url: buildURL(URLFormat(config.baseURL, config.url), config.params, config.paramsSerializer),
header: config.headers,
data: config.data,
dataType: config