源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

详解Spring MVC CORS 跨域

  • 时间:2021-04-02 10:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:详解Spring MVC CORS 跨域
[b]介绍[/b] 跨域CORS,全称是"跨域资源共享"(Cross-origin resource sharing) [b]当页面发出跨域请求时:[/b] 1、简单请求(先简单理解为正常的get/post吧): 浏览器将请求的地址添加到header的Origin里面发送请求。接下来就看后台如何处理了。 2、非简单请求(姑且简单理解成Content-Type:"application/json"吧): 浏览器会先发个预检请求(preflight),也就是OPTIONS请求。服务器返回是否许可访问和支持的请求方式,浏览器再决定是否发出请求。 [b]使用@CrossOrigin注解[/b] 用法很简单,只需在controller或者方法上面添加注解即可。在controller上用表示整个controller下的方法都支持跨域
@Controller
public class HomeController {
 @CrossOrigin
 @RequestMapping("/")
 public String Index() {
  return "Index";
 }
}
[b]参数说明[/b] [list] [*]origins: 表示允许跨域的地址 前面的http(s)必须加,默认*表示全部[/*] [*]value: origins的别名[/*] [*]allowedHeaders: 在OPTIONS请求中,返回的Access-Control-Allow-Headers 这个参数限定了客户端只能发送的header参数,不在此范围内浏览器阻止发出请求。默认*[/*] [*]exposedHeaders: 对应Access-Control-Expose-Headers 该字段可选。CORS请求时,XMLHttpRequest对象的getResponseHeader()方法只能拿到6个基本字段:Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma。如果想拿到其他字段,就必须在Access-Control-Expose-Headers里面指定。上面的例子指定,getResponseHeader('FooBar')可以返回FooBar字段的值。[/*] [*]methods: 允许的请求方法,像get,post这些[/*] [*]allowCredentials: 对应Access-Control-Allow-Credentials 该字段可选。它的值是一个布尔值,表示是否允许发送Cookie。默认情况下,Cookie不包括在CORS请求之中。设为true,即表示服务器明确许可,Cookie可以包含在请求中,一起发给服务器。这个值也只能设为true,如果服务器不要浏览器发送Cookie,删除该字段即可。[/*] [*]maxAge: 对应Access-Control-Max-Age 用来指定预检请求的有效期(秒),在有效期内不在发送预检请求直接请求。默认1800秒,即30分钟。[/*] [/list] [b]使用spring配置文件[/b] 这个适合用于全局的配置,对应的字段跟CrossOrigin差不多。path表示允许跨域的路径。
<mvc:cors>
 <mvc:mapping path="/**" allowed-methods="*"/>
</mvc:cors>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部