Spring Boot 跨域访问

什么是跨域访问

当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时 ,资源会发起一个跨 域 HTTP请求。比如,站点 http://example-a.com 的某 HTML 页面通过 <img> 的 src 请求 ht甲://example-b.com/ 1mage.jpg。 网络上的许多页面都会加载来 自不同域的 css 样式表 、 图像和脚本等资源 。
W3C 制定了 CORS 的相关规范,见 https://www.w3.org/TR/cors/。 出于安全考虑,浏览器会限 制从脚本内发起的跨域 HTTP请求。 例如, XMLHtψRequest 和 Fetch 遵循同源策略。 因此,使用 XMLH叩 Request 或 Fetch 的 Web 应用程序只能将 HTTP 请求发送到其自己的域 。 为了改进 Web 应 用程序,开发人员要求浏览器厂商允许跨域请求。

如何识别是跨域行为

识别是否具有跨域行为,是由同游、政策决定的。 同游、政策由 N巳tscape公司引入浏览器。 目前, 所有浏览器都实行这个政策 。 所谓“同源”,指的是“ 三个相同” 。

在 Spring Boot 应用中允许踏域访问

在微服务的架构里面,由于每个服务都在其自身的源中运行,因此,很容易就会遇到来自多个 来源的客户端Web应用程序来访问服务的问题(即跨域访问) 。 例如,一个浏览器客户端从 “客户” 微服务器访问“客户”,并从“订单”微服务器访问订单历史记录, 这种做法在微服务领域非常 普遍。
SpringMVC 支持 CORS 的开箱即用的功能 。 主要有两种实现跨域访问的方式 。

  • 方法级别的跨域访问
    Spring Boot 提供了一种简单的声明式方法来实现跨域请求。 以下示例显示如何使用 @CrossOr­igin 注解,来启用允许跨域访问某些接口 。


    example

    其中, origins ="刺 意味着允许所有域名访问(当然,你也可以限定某个域名来访问 ) 。 maxAge = 3600是指有效期为 3600秒。

  • 全局跨域访问
    可以通过使用自定义的 addCorsMappings(CorsRegistry)方法注册 WebMvcConfigurer bean 来定 义全局CORS配置。 用法如下:


    屏幕快照 2018-10-18 下午2.54.39.png
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,307评论 19赞 139
  • 题目1.什么是同源策略? 同源策略(Same origin Policy): 浏览器出于安全方面的考虑,只允许与本...
    FLYSASA阅读 1,983评论 0赞 6
  • 什么是跨域 跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实...
    他方l阅读 1,180评论 0赞 2
  • 奶奶快要出嫁了,她的嫂嫂忙的不可开交。不管怎么说奶奶家里就她一个没出阁的了,亲人们都在各种变故中去了,奶奶与...
    喵咪喵呜阅读 359评论 0赞 1
  • 1. 一个是从来没有输过的冷血杀手 一个是当今围棋第一人的少年 这两位,注定要有一战,而且必然是惊天地泣鬼神的,就...
    热点拆解社阅读 283评论 0赞 3

友情链接更多精彩内容