Spring MVC 4.2+ CORS返回403
我创建了一个新的简单的Spring MVC应用程序(使用4.2.1.Release,现在切换到4.2.7.Release)。 该应用很简单:
WEB.XML:
proxy org.springframework.web.servlet.DispatcherServlet 1 dispatchOptionsRequest true contextConfigLocation classpath*:my-cool-context.xml proxy /*
语境:
和控制器
@Controller @RequestMapping("/") @CrossOrigin public class MySupercoolController { @CrossOrigin @RequestMapping(path="test", method = RequestMethod.POST) @ResponseBody private ResponseEntity executePostProxy(HttpServletRequest request){ return new ResponseEntity("TEST", HttpStatus.OK); } }
现在 – 控制器本身正在工作并返回我的文本,因此控制器被加载到上下文中。 但是该端点的preflightRequest正在获得403 Forbidden响应,并且没有设置CORS响应heaeders。 我正在使用JBOSS,但我已经validation了OPTIONS请求到达Spring(正在执行FrameworkServlet doOptions方法,通过调试器检查)。 在Spring MVC中我还应该为CORS配置什么吗?
BTW上下文CORS配置和Annotation配置 – 我试图让它工作,所以我尝试使用xml,注释和两者。
看来,这也是必要的:
@Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**"); } }
- RESTful webservice:如何在java中设置头文件以接受Access-Control-Allow-Origin允许的XMLHttpRequest
- 在Spring 5 Webflux中启用CORS?
- IE11 CORS拒绝https上的OPTIONS
- 无法在javascript中向java Web服务(泽西岛)发出CORS POST请求?
- 在Play Framework 2.4.x中解决CORS问题
- 请求的资源上不存在Access-Control-Allow-Origin标头
- 在预检响应中,Access-Control-Allow-Methods不允许使用方法DELETE
- Spring Global CORS配置不起作用,但控制器级配置不起作用
- GWT HTTP请求响应代码0,CORS正在工作