axios jsonp
时间: 2023-11-07 09:03:31 浏览: 147
axios 不支持直接发送 JSONP 请求,因为 JSONP 是一种通过插入 `<script>` 标签来实现跨域请求的技术,而 axios 是基于 XMLHttpRequest 实现的,无法直接操作 `<script>` 标签。
不过,你可以使用 axios 发送普通的 GET 请求,并在服务端返回 JSONP 形式的响应,然后通过一些处理手段实现 JSONP 请求。
以下是一个示例代码,使用 axios 发送 JSONP 请求:
```javascript
axios({
url: 'http://example.com/api',
params: {
callback: 'jsonpCallback'
}
}).then(response => {
// 处理响应数据
}).catch(error => {
// 处理错误
});
```
在服务端,你需要处理传入的 `callback` 参数,并将响应数据包裹在该回调函数中返回。例如,在 Node.js 中可以这样实现:
```javascript
const express = require('express');
const app = express();
app.get('/api', (req, res) => {
const data = { message: 'Hello, World!' };
const callback = req.query.callback;
const jsonpResponse = `${callback}(${JSON.stringify(data)})`;
res.send(jsonpResponse);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
```
这样,在客户端接收到响应后,会自动执行 `jsonpCallback` 函数,并将响应数据作为参数传递给它。
希望这个示例对你有帮助!
阅读全文