CORS解决跨域问题(403问题)
2019-08-26 05:59:37来源:博客园 阅读 ()
CORS解决跨域问题(403问题)
1、什么是跨域问题?
跨域问题是浏览器对于ajax请求的一种安全限制:一个页面发起的ajax请求,只能是用当前页同域名同端口的路径,这能有效的阻止跨站攻击。
2、跨域问题出现的条件:
1、跨域问题是ajax请求特有的问题。
2、前后端的域名、端口不一致。
3、CORS跨域解决原理简单分析:
CORS需要浏览器和服务器的同时支持。
浏览器端(浏览器自动完成):
发送两次请求,第一次发送option请求 --询问服务器端是否可以跨域;
第二次才发送正式请求。
服务器端:
通过拦截器/过滤器统一实现,过滤器过滤所有的请求,匹配对应的ip+端口,如果符合条件,则在响应头中添加允许跨域访问的信息。
4、CORS跨域解决方案:
1、 在网关中配置一个CORS的跨域过滤器:SpringMVC已经帮我们写好了CORS的跨域过滤器,直接使用即可。
2、 在网关中创建一个配置文件告诉过滤器允许通过的域名和端口即可。
在网关中添加如下配置文件即可(springMVC环境下)
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @Configuration public class GlobalCorsConfig { @Bean public CorsFilter corsFilter() { //1.添加CORS配置信息 CorsConfiguration config = new CorsConfiguration(); //1) 允许通过的域,不要写*,否则cookie就无法使用了 config.addAllowedOrigin("http://127.0.0.1:7001"); config.addAllowedOrigin("http://localhost:7001"); //2) 是否发送Cookie信息 config.setAllowCredentials(true); //3) 允许的请求方式 config.addAllowedMethod("OPTIONS"); config.addAllowedMethod("HEAD"); config.addAllowedMethod("GET"); config.addAllowedMethod("PUT"); config.addAllowedMethod("POST"); config.addAllowedMethod("DELETE"); config.addAllowedMethod("PATCH"); // 4)允许的头信息 config.addAllowedHeader("*"); //2.添加映射路径,我们拦截一切请求 UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource(); configSource.registerCorsConfiguration("/**", config); //3.返回新的CorsFilter. return new CorsFilter(configSource); } }
原文链接:https://www.cnblogs.com/wanghj-15/p/11374190.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 聊聊微服务架构及分布式事务解决方案! 2020-06-10
- 解决IDEA Maven下载依赖包速度慢问题 2020-06-05
- Java生鲜电商平台-生鲜电商中配送订单解决方案(小程序/APP) 2020-05-31
- 一口气说出8种幂等性解决重复提交的方案,面试官懵了! 2020-05-30
- Java生鲜电商平台-生鲜电商中采购订单与库存解决方案(小程序 2020-05-26
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash