Access-Control-Allow-Origin:* 表示允许任何域名跨域访问
如果需要指定某域名才允许跨域访问,只需把Access-Control-Allow-Origin:*改为Access-Control-Allow-Origin:允许的域名
例如:response.setHeader("Access-Control-Allow-Origin", "http://www.client.com")
跨域问题一般都在后台程序解决,将自己的程序通过配置文件或者代码将其允许跨域,在有跨域安全的时候,所有前端post请求时,会发送一个与其请求名字一样的OPTIONS
此请求没有任何参数,此机制为post不知道是否有权限请求接口,发送了一个探知请求,探知
请求确认后,允许访问后调用正常Post接口。 不允许就会出现你现在的问题跨域异常。
萌新,java是开源的,比NET好多了,多看看底层
原文连接: 原文地址
跨域的详细介绍可以参考: 浏览器和服务器实现跨域(CORS)判定的原理 ,这里不多赘述。
1、主要就是客户端向发送了服务端请求,服务器已经能返回数据,但是浏览器不接收
2、在接口里面加上:( 因为request是处理请求,response是返回结果 )
response.setHeader("Access-Control-Allow-Origin", "*")
response.setHeader("Cache-Control","no-cache")
3、如果是使用Spring Boot创建的项目,直接添加 一句注解 到controller和方法就可以了:
@CrossOrigin
其中@CrossOrigin中的2个参数:
origins : 允许可访问的域列表
maxAge :准备响应前的缓存持续的最大时间(以秒为单位)。
在这个例子中,对于retrieve()和remove()处理方法都启用了跨域支持,还可以看到如何使用@CrossOrigin属性定制CORS配置。如果同时使用controller和方法级别的CORS配置,Spring将合并两个注释属性以创建合并的CORS配置。
4、如果您正在使用Spring Security,请确保在Spring安全级别启用CORS,并允许它利用Spring MVC级别定义的配置。
二、全局CORS配置
除了细粒度、基于注释的配置之外,您还可能需要定义一些全局CORS配置。这类似于使用筛选器,但可以声明为Spring MVC并结合细粒度@CrossOrigin配置。默认情况下,所有origins and GET, HEAD and POST methods是允许的。
JavaConfig
使整个应用程序的CORS简化为:
更多使用请看原文连接和官方文档
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)