axios中如何才能跨域
时间: 2023-10-18 14:56:18 浏览: 82
在axios中进行跨域请求,有以下几种方法:
1. 使用JSONP方式进行跨域请求
使用axios发送JSONP请求,可以通过设置请求的`params`参数来实现。例如:
```
axios({
url: 'http://example.com/api',
params: {
callback: 'jsonpCallback'
}
}).then(function (response) {
console.log(response.data);
}).catch(function (error) {
console.log(error);
});
```
2. 在后端服务器上进行跨域设置
后端服务器可以设置CORS(跨域资源共享)来允许跨域请求。例如,在使用Node.js和Express框架时,可以使用以下代码来设置CORS:
```
const express = require('express');
const app = express();
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
```
这样设置之后,就允许所有来源(`*`)的请求都可以访问该服务器的资源了。
3. 使用代理服务器进行跨域请求
在本地启动一个代理服务器,将请求转发到目标服务器上,就可以实现跨域请求了。比如,在Vue项目中,可以使用`vue.config.js`文件来配置代理服务器。例如:
```
module.exports = {
devServer: {
proxy: 'http://example.com'
}
}
```
这样设置之后,在本地启动Vue项目时,所有以`/api`开头的请求都会被代理到`http://example.com/api`上。
阅读全文