微信小程序使用axios
时间: 2023-09-10 20:14:23 浏览: 148
微信小程序中可以使用axios库来发送HTTP请求。不过需要注意的是,微信小程序中不能使用Node.js的全局变量和方法,因此需要对axios进行一些修改和适配。
下面是使用axios发送GET请求的示例代码:
1. 安装axios(需要在小程序根目录下执行):
```
npm install axios
```
2. 创建一个util.js文件(用于封装axios):
```
import axios from 'axios';
// 创建axios实例
const service = axios.create({
baseURL: 'https://api.example.com', // 接口的基础url
timeout: 5000 // 请求超时时间
});
// request拦截器
service.interceptors.request.use(
config => {
// 在请求发送之前做一些处理
return config;
},
error => {
// 请求错误处理
return Promise.reject(error);
}
);
// response拦截器
service.interceptors.response.use(
response => {
// 数据响应之后处理
return response.data;
},
error => {
// 响应错误处理
return Promise.reject(error);
}
);
export default service;
```
3. 在需要发送请求的页面中引入util.js,并调用axios发送请求:
```
import util from '../../utils/util.js';
Page({
data: {
result: ''
},
onLoad: function () {
this.getData();
},
getData: function () {
const that = this;
util.get('/path/to/api').then(res => {
that.setData({
result: res.data
});
}).catch(err => {
console.log(err);
});
}
});
```
在上面的代码中,我们通过util.js中封装的axios实例来发送GET请求,并在请求成功后将数据展示在页面中。
需要注意的是,在小程序中发送请求需要使用wx.request或者wx.uploadFile等wx开头的API,因此我们需要对axios进行一些适配。在util.js中,我们将axios的请求和响应拦截器封装为一个新的实例,并在拦截器中使用wx.request或者wx.uploadFile等API来发送请求和处理响应。
阅读全文