【发布时间】:2019-08-17 04:39:03
【问题描述】:
我正在使用 Java Spring 3.0.4(由于某些要求无法升级),我需要启用 Cors 以便前端与后端通信。
我的后端是一个 Angular 应用程序,运行在:http://localhost:4200/home
我尝试了以下方法,但没有成功:
public static final String CREDENTIALS_NAME = "Access-Control-Allow-Credentials";
public static final String ORIGIN_NAME = "Access-Control-Allow-Origin";
public static final String METHODS_NAME = "Access-Control-Allow-Methods";
public static final String HEADERS_NAME = "Access-Control-Allow-Headers";
public static final String MAX_AGE_NAME = "Access-Control-Max-Age";
@PreAuthorize("hasRole('ADMIN')")
@RequestMapping(value="/data", method=RequestMethod.GET)
public void serverSide(Model model, HttpServletRequest request, HttpServletResponse response) throws IOException{
response.setContentType("application/json");
response.setHeader("Cache-Control", "no-store");
response.setHeader(CREDENTIALS_NAME, "true");
response.setHeader(ORIGIN_NAME, "http://localhost:4200");
response.setHeader(METHODS_NAME, "GET, OPTIONS, POST, PUT, DELETE");
response.setHeader(HEADERS_NAME, "Origin, X-Requested-With, Content-Type, Accept");
response.setHeader(MAX_AGE_NAME, "3600");
PrintWriter out = response.getWriter();
out.print("TEST!!");
}
【问题讨论】:
-
你试过在控制器方法上添加
@CrossOrigin吗? -
我相信注释是在 Spring 3.2 中添加的,但是是的,我已经尝试过了,它抱怨注释没有定义。 @MadhuBhat
-
您是否有机会运行 Apache Tomcat?您是如何部署应用的?
-
@KarolDowbecki 是的,我正在运行 Apache Tomcat,但我不太确定我们的应用程序是如何部署的(对于这个团队来说非常新)
-
@sbattou 你可以在这里尝试任何答案stackoverflow.com/questions/32319396/… 吗?
标签: java spring http spring-mvc cors