vue3 项目中怎么解决跨域 , has been blocked by CORS policy
时间: 2023-11-17 20:19:22 浏览: 320
在 Vue 3 项目中解决跨域问题可以使用以下几种方法:
1. 代理:配置一个代理服务器来转发请求,绕过浏览器的跨域限制。可以通过在 `vue.config.js` 或者 `nuxt.config.js` 中添加以下配置来实现代理:
```javascript
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://api.example.com',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
```
上述配置中,将以 `/api` 开头的请求转发到 `http://api.example.com`,`changeOrigin` 设置为 `true` 表示修改请求头中的 Origin 字段。
2. 跨域资源共享(CORS):在服务器端设置响应头来允许跨域请求。可以在后端服务器的响应中添加以下头部:
```javascript
app.use((req, res, next) => {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
next();
});
```
上述代码将允许任意来源的请求,并且允许的方法包括 GET、POST、PUT 和 DELETE。
3. JSONP:利用动态创建 `<script>` 标签的方式来获取跨域数据。但是 JSONP 只支持 GET 请求,且只能用于跨域获取 JSON 数据。
以上是解决跨域问题的几种常用方法,在具体的项目中可以根据需求选择适合的方式来解决跨域问题。
阅读全文