admin管理员组文章数量:1794759
解决springboot跨域问题No ‘Access
文章目录
- 1.问题描述
- 2.问题产生
- 3.解决方案
- 1. 在WebMvcConfig添加(推荐使用)
- 2.直接采用springboot的注解@CrossOrigin
- 1.Controller层在需要跨域的类或者方法上加上该注解即可。
- 2.spring注解@CrossOrigin不起作用的原因
前端向后台发送请求发现报错: 报错: Access to XMLHttpRequest at ‘localhost:8082/doLogin’ from origin ‘localhost:8080’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
2.问题产生跨域访问(CORS) CORS是一种访问机制,英文全称是Cross-Origin Resource Sharing,即我们常说的跨域资源共享,通过在服务器端设置响应头,把发起跨域的原始域名添加到Access-Control-Allow-Origin 即可。
当它请求的一个资源是从一个与它本身提供的第一个资源的不同的域名时,一个资源会发起一个跨域HTTP请求(Cross-site HTTP request)。 一般都是异步请求会有这个问题,比如:Ajax,XMLHttpRequest等
3.解决方案 1. 在WebMvcConfig添加(推荐使用) @Override public void addCorsMappings(CorsRegistry registry) { //允许跨域访问资源定义 registry.addMapping("/**") //(只允许本地的指定端口访问)允许所有 .allowedOrigins("localhost:8080") // 允许发送凭证: 前端如果配置改属性为true之后,则必须同步配置 .allowCredentials(true) // 允许所有方法 .allowedMethods("*") .allowedHeaders("*"); } 2.直接采用SpringBoot的注解@CrossOrigin 1.Controller层在需要跨域的类或者方法上加上该注解即可。其中@CrossOrigin中的2个参数:
- origins: 允许可访问的域列表
- maxAge:准备响应前的缓存持续的最大时间(以秒为单位)
1、是springMVC的版本要在4.2或以上版本才支持@CrossOrigin 2、非@CrossOrigin没有解决跨域请求问题,而是不正确的请求导致无法得到预期的响应,导致浏览器端提示跨域问题。 3、在Controller注解上方添加@CrossOrigin注解后,仍然出现跨域问题,解决方案之一就是: 在@RequestMapping注解中没有指定Get、Post方式,具体指定后,问题解决。
本文标签: SpringBootAccess
版权声明:本文标题:解决springboot跨域问题No ‘Access 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686959798a122403.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论