全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Spring MVC CORS 跨域

介绍

跨域CORS,全称是"跨域资源共享"(Cross-origin resource sharing)

当页面发出跨域请求时:

1、简单请求(先简单理解为正常的get/post吧):

浏览器将请求的地址添加到header的Origin里面发送请求。接下来就看后台如何处理了。

2、非简单请求(姑且简单理解成Content-Type:"application/json"吧):

浏览器会先发个预检请求(preflight),也就是OPTIONS请求。服务器返回是否许可访问和支持的请求方式,浏览器再决定是否发出请求。

使用@CrossOrigin注解

用法很简单,只需在controller或者方法上面添加注解即可。在controller上用表示整个controller下的方法都支持跨域

@Controller
public class HomeController {
 @CrossOrigin
 @RequestMapping("/")
 public String Index() {
  return "Index";
 }
}

参数说明

  • 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分钟。

使用spring配置文件

这个适合用于全局的配置,对应的字段跟CrossOrigin差不多。path表示允许跨域的路径。

<mvc:cors>
 <mvc:mapping path="/**" allowed-methods="*"/>
</mvc:cors>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Spring  # MVC  # CORS  # 跨域  # spring MVC cors跨域实现源码解析  # Spring MVC 与 CORS跨域的详细介绍  # 详解SpringMVC解决跨域的两种方案  # Spring MVC中自带的跨域问题解决方法  # 设为  # 可选  # 是一个  # 在此  # 只需  # 很简单  # 就看  # 期内  # 不包括  # 发个  # 资源共享  # 如何处理  # 配置文件  # 大家多多  # 会先  # 客户端  # 情况下  # 就必须  # 布尔值  # RequestMapping 


相关文章: 常州企业建站如何选择最佳模板?  如何在阿里云服务器自主搭建网站?  如何在IIS中配置站点IP、端口及主机头?  如何选择域名并搭建高效网站?  如何在宝塔面板中修改默认建站目录?  网站制作话术技巧,网站推广做的好怎么话术?  招商网站制作流程,网站招商广告语?  如何选择高性价比服务器搭建个人网站?  网站制作报价单模板图片,小松挖机官方网站报价?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  大连网站制作公司哪家好一点,大连买房网站哪个好?  c++怎么用jemalloc c++替换默认内存分配器【性能】  公众号网站制作网页,微信公众号怎么制作?  建站之星与建站宝盒如何选择最佳方案?  如何打造高效商业网站?建站目的决定转化率  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  如何用y主机助手快速搭建网站?  黑客入侵网站服务器的常见手法有哪些?  建站之星安装后如何配置SEO及设计样式?  如何获取免费开源的自助建站系统源码?  如何通过cPanel快速搭建网站?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  建站之星官网登录失败?如何快速解决?  网站制作难吗安全吗,做一个网站需要多久时间?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  如何配置IIS站点权限与局域网访问?  ,在苏州找工作,上哪个网站比较好?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  ,如何利用word制作宣传手册?  宝塔建站无法访问?如何排查配置与端口问题?  建站VPS能否同时实现高效与安全翻墙?  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  如何快速搭建响应式可视化网站?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何通过西部建站助手安装IIS服务器?  ,网站推广常用方法?  如何用VPS主机快速搭建个人网站?  制作门户网站的参考文献在哪,小说网站怎么建立?  如何在景安云服务器上绑定域名并配置虚拟主机?  建站主机选购指南:核心配置与性价比推荐解析  如何在宝塔面板创建新站点?  大连网站设计制作招聘信息,大连投诉网站有哪些?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  如何获取上海专业网站定制建站电话?  红河网站制作公司,红河事业单位身份证如何上传?  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  网站微信制作软件,如何制作微信链接?  深圳网站制作平台,深圳市做网站好的公司有哪些? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。