当前位置: 首页 > 知识库问答 >
问题:

Spring CORS控制器注释不工作

符允晨
2023-03-14

我想允许一个域的跨源请求。我的项目使用Spring,所以我想利用新的CORS支持。

我遵循下面的示例https://spring.io/blog/2015/06/08/cors-support-in-spring-framework#disqus_thread并尝试了第一个版本。我的控制器注释如下所示:

@CrossOrigin(origins = "http://fiddle.jshell.net/", maxAge = 3600)
@Controller
@RequestMapping("/rest")
public class MyController 

如果我理解正确的话,mvc-config是一种替代方法。我也试过了:

<mvc:cors>  
    <mvc:mapping path="/**"
        allowed-origins="http://fiddle.jshell.net/, http://domain2.com"
        allowed-methods="GET, PUT"
        allowed-headers="header1, header2, header3"
        exposed-headers="header1, header2" allow-credentials="false"
        max-age="123" />    
</mvc:cors>

对于这两种方法,响应似乎都不包含access-control-allog-origin之类的内容,也不能通过简单的查询从JSFiddle返回结果。

Content-Length:174869 
Content-Type:text/html;charset=UTF-8 
Date:Fri, 21 Aug 2015 12:21:09 GMT 
Server:Apache-Coyote/1.1
      Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*\/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,ro;q=0.6,de;q=0.4,fr;q=0.2
Cache-Control:no-cache 
Connection:keep-alive
Cookie:JSESSIONID=831EBC138D2B7E176DF4945ADA05CAC1;_ga=GA1.1.1046500342.1404228238; undefined=0 
Host:localhost:8080 
Pragma:no-cache 
Upgrade-Insecure-Requests:1 
User-Agent:Mozilla/5.0(Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36

我不使用spring boot,我想我错过了一个配置步骤。

共有1个答案

汤承允
2023-03-14

我为自己复制了这个问题。当我的@Configuration注释类中没有@EnableWebMVC注释时,就会出现这个问题。我已经将此问题报告为Sping Jira中的一个bug,并提供了详细信息:https://Jira.spring.io/browse/spr-13857

我可以在代码或文档中看到修复。文档修正应该是在@CrossOrigin类javadoc中声明@enableWebMVC是必需的,但我更喜欢代码中的修正,这样cors注释就可以在没有@enableWebMVC的情况下工作。

 类似资料:
  • GCP入口的以下注释等效于什么?我试图使用一个自定义的nginx模板,但我找不到以下注释的参考。在github的回答中,他们使用的是AWS,但我需要使用GCP来实现这一点。 我正在使用ingress类nginx 我正在尝试使用入口控制器在GCP Kubernetes集群中进行入口TCP SSL终止。 我想要来自<代码>https://example.com:1234重定向到

  • 我真的很难理解JavaFX控制器,我的目标是写一个TextArea来充当日志。 我的代码在下面,但我希望能够改变值等从另一个类,我可以调用时需要。我试图创建一个扩展初始化的控制器类,但我无法使它工作。有谁能指引我正确的方向吗?

  • 嗨,我用spring初始化器创建了一个简单的Spring Boot应用程序。我在主应用程序类的同一文件夹中添加了一个控制器。 这是给我以下错误的网址http://localhost:8080/welcome 此应用程序没有针对/错误的显式映射,因此您将其视为回退。 Sat Dec 19 12:51:44 IST 2020出现意外错误(类型=未找到,状态=404)。 如果我使用@restContro

  • 我正在尝试在数据库中保存对象。正在执行代码并创建实体的Id,但实体未持久化到数据库(未插入行): 从三行(beginTransation,flush,commit)中删除注释解决了问题,但是为什么注释在这里不起作用呢? spring XML: POM xml文件: