这个问题在这里已经有答案了:
cors问题-请求的资源上不存在“访问控制允许来源”标头(7个答案)
上个月关门了。
正如在标题中一样,我尝试在java/spring中的Angular 前端和rest端点之间建立连接(我没有开发,也不太了解)。顺便说一句,一切正常。通过邮递,我在终端机里收到了信息
has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
在dev instruments的network选项卡中,options方法出现错误403
Request Method: OPTIONS
Status Code: 403
Remote Address: xx.xx.xx.xx:xxxx
Referrer Policy: strict-origin-when-cross-origin
所以,我在互联网上搜索了几次后发现了这种情况,原因是cors设置:通常,在这种情况下,一个选项调用在post之前发送;但是,由于cors的原因,期权认购是不允许的。所以,我试着在我的控制器上设置这一行
@CrossOrigin(origins = "*", methods = {RequestMethod.OPTIONS, RequestMethod.GET, RequestMethod.POST, RequestMethod.PUT, RequestMethod.DELETE})
这一次错误发生了变化
Multiple CORS header 'Access-Control-Allow-Origin' not allowed
但我添加的代码是唯一与@crossorigin相似的,我发现其他代码都不相似。
所以,我的问题是:我可以在控制器中搜索哪些代码,或者也可以在其他类中搜索哪些代码,这些类通常与前面提到的decorator具有相同的角色?
(应用程序使用spring security;我没有开发它,而且我在spring安全方面也不是很专业)。
编辑:我在本次讨论中所做的与我的完全不同,但在本例中,我收到了以下新错误:
has been blocked by CORS policy: The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.
我能做什么?非常感谢你
2条答案
按热度按时间vyu0f0g11#
在springboot项目中,向控制器添加以下代码。
如果您的服务在本地服务器/任何具有任何代理的服务器上运行,这将解决跨源问题。
8oomwypt2#
您可以添加全局策略以允许访问实现WebMVCConfiguer。
}