axios 封装jsonp 并使用
时间: 2023-11-29 13:42:35 浏览: 33
好的,下面是 axios 封装 jsonp 并使用的代码示例:
```javascript
import axios from 'axios'
import jsonp from 'jsonp'
function jsonpRequest(url, params) {
return new Promise((resolve, reject) => {
jsonp(url, {
param: 'callback',
timeout: 5000,
...params
}, (err, data) => {
if (err) {
reject(err)
} else {
resolve(data)
}
})
})
}
function axiosJsonp(url, params) {
return axios({
url,
method: 'get',
params,
transformResponse: [function (data) {
return data
}],
adapter: jsonpRequest
})
}
// 使用示例
axiosJsonp('https://example.com/api', { id: 1 }).then(res => {
console.log(res)
}).catch(err => {
console.error(err)
})
```
这里我们使用了 `jsonp` 库来实现 jsonp 请求,并将其作为 `axios` 的适配器使用。在 `axiosJsonp` 函数中,我们将 `adapter` 属性设置为 `jsonpRequest` 函数,这样 `axios` 就会使用 `jsonpRequest` 函数来发送请求。