我这边的解决方法是:
整体的:
后端配置:
在 Spring Boot 中,可以通过在配置类中添加 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">@CrossOrigin</font>
注解或实现 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">WebMvcConfigurer</font>
接口并重写 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">addCorsMappings</font>
方法来允许特定来源的跨域请求:
相关博客链接:
- https://blog.youkuaiyun.com/yuanlong12178/article/details/147143201 参考该 blog 解决的
- https://blog.youkuaiyun.com/xhmico/article/details/122338365 这篇也不错。
https://blog.youkuaiyun.com/yuanlong12178/article/details/147143201 内容备份如下:
一、Vue.js 中跨域请求未配置 CORS 的常见原因
(一)浏览器的同源策略限制
浏览器的同源策略限制了从一个源加载的文档或脚本与来自另一个源的资源之间的交互能力。当你的前端应用和后端 API 位于不同的域或端口时,就会触发 CORS 问题。
(二)后端未正确配置 CORS
如果后端服务器未正确设置 CORS 相关的响应头,浏览器将无法允许跨域请求。
二、解决方案
(一)后端配置 CORS
在后端服务器上进行 CORS 配置是解决跨域问题的根本方法。以下是一些常见后端框架的 CORS 配置示例:
- Node.js (使用 Express)
2. Spring Boot
在 Spring Boot 中,可以通过在配置类中添加 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">@CrossOrigin</font>
注解或实现 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">WebMvcConfigurer</font>
接口并重写 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">addCorsMappings</font>
方法来允许特定来源的跨域请求:
(二)前端配置代理
在开发环境中,可以通过配置代理服务器来绕过浏览器的同源策略限制。Vue CLI 提供了代理配置功能,可以通过修改 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">vue.config.js</font>
文件中的 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">devServer.proxy</font>
选项来实现。
(三)使用第三方库
使用像 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);">cors</font>
这样的第三方库可以大大简化 CORS 的配置过程。安装库后,可以在后端应用中引入并配置它:
(四)JSONP(不推荐)
JSONP 是一种较老的跨域解决方案,通过 <font style="color:rgb(199, 37, 78);background-color:rgb(249, 242, 244);"><script></font>
标签的跨域加载机制来实现。它只支持 GET 请求,且存在安全风险,因此在现代应用中不推荐使用。
三、最佳实践建议
(一)优先在后端配置 CORS
在生产环境中,优先在后端服务器上进行 CORS 配置,以确保安全性。
(二)开发环境使用代理
在开发环境中,使用 Vue CLI 的代理功能来解决跨域问题,避免修改后端代码。
(三)避免使用 JSONP
由于 JSONP 存在安全风险且只支持 GET 请求,建议避免使用。
四、总结
在 Vue.js 中,解决跨域请求未配置 CORS 的问题可以通过后端配置 CORS、前端配置代理、使用第三方库等方法来实现。后端配置 CORS 是最推荐的方法,因为它可以确保生产环境的安全性。在开发环境中,使用 Vue CLI 的代理功能可以快速解决跨域问题。希望本文的介绍能帮助你在 Vue.js 开发中更好地处理跨域请求,提升应用的性能和用户体验。