gpt4 book ai didi

java - Spring MVC 4.2+ CORS 返回 403

转载 作者:行者123 更新时间:2023-11-30 08:35:01 25 4
gpt4 key购买 nike

我创建了一个全新且简单的 Spring MVC 应用程序(使用 4.2.1.Release,现在切换到 4.2.7.Release)。该应用程序很简单:

WEB.XML:

<servlet>
<servlet-name>proxy</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>

<init-param>
<param-name>dispatchOptionsRequest</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:my-cool-context.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>proxy</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

上下文:

<context:component-scan base-package="my.supercool.company.app"/>
<mvc:cors>
<mvc:mapping path="/**" allowed-methods="POST, OPTIONS" />
</mvc:cors>

和 Controller

@Controller
@RequestMapping("/")
@CrossOrigin
public class MySupercoolController {
@CrossOrigin
@RequestMapping(path="test", method = RequestMethod.POST)
@ResponseBody
private ResponseEntity<String> executePostProxy(HttpServletRequest request){
return new ResponseEntity<String>("TEST", HttpStatus.OK);
}
}

现在 - Controller 本身正在工作并返回我的文本,因此 Controller 已加载到上下文中。但是该端点的 preflightRequest 收到 403 Forbidden 响应,并且未设置 CORS 响应 header 。我正在使用 JBOSS,但我已经验证了 OPTIONS 请求到达了 Spring(正在执行 FrameworkServlet doOptions 方法,通过调试器检查)。在 spring MVC 中,我还应该为 CORS 配置什么吗?

顺便说一句上下文 CORS 配置和注释配置 - 我试图让它工作,所以我尝试使用 xml、注释和两者。

最佳答案

看来,这也是必要的:

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
}

关于java - Spring MVC 4.2+ CORS 返回 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38480394/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com