uni-app使用axios 配置适配器

uni-app使用axios发送请求时adapter is not a function

解决app上adapter is not a function问题

import axios from 'axios'

import axiosAdapterUniapp from 'axios-adapter-uniapp'


//真机获取 解决app上adapter is not a function问题
axios.defaults.adapter = function(config) {
	 return new Promise((resolve, reject) => {
			var settle = require('axios/lib/core/settle');
			var buildURL = require('axios/lib/helpers/buildURL');
			var buildFullPath = require('axios/lib/core/buildFullPath');
			let fullurl = buildFullPath(config.baseURL,config.url)
			uni.request({
				method: config.method.toUpperCase(),
				url: buildURL(fullurl, 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);
				}
			})
	    })
}


const instance = axios.create({
	adapter:axiosAdapterUniapp
})
export default instance
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
uni-app中封装axios,可以让你更方便地进行网络请求。axios是一个流行的基于Promise的HTTP客户端,可以在浏览器和Node.js中使用。 首先,你需要在uni-app项目中安装axios。在命令行中运行以下命令: ```shell npm install axios ``` 接下来,创建一个http.js文件,用于封装axios配置和请求函数: ```javascript import axios from 'axios' // 创建axios实例 const instance = axios.create({ baseURL: 'http://example.com/api', // 设置请求的baseURL timeout: 5000, // 设置请求超时时间 }) // 请求拦截器 instance.interceptors.request.use( config => { // 在发送请求之前做些什么,比如添加token等 return config }, error => { // 对请求错误做些什么 return Promise.reject(error) } ) // 响应拦截器 instance.interceptors.response.use( response => { // 对响应数据做些什么 return response.data }, error => { // 对响应错误做些什么 return Promise.reject(error) } ) export default instance ``` 在上面的代码中,我们创建了一个axios实例,并设置了baseURL和timeout。然后,我们通过拦截器对请求进行处理,可以在请求发送前和响应返回后做一些额外的处理,比如添加token、处理错误等。 现在,你可以在项目的任何地方使用这个封装好的axios实例进行网络请求。例如: ```javascript import http from '@/utils/http' http.get('/users') .then(data => { console.log(data) }) .catch(err => { console.error(err) }) ``` 这样,你就可以在uni-app使用封装好的axios进行网络请求了。当然,你还可以根据自己的需求对axios进行更多的配置和封装。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值