【发布时间】:2018-10-17 15:40:00
【问题描述】:
我什么都试过了。我不知道该怎么做。它只是没有工作。
我实际上已经添加了“@CrossOrigin”/“@CrossOrigin(maxAge = 3600)”。
如何配置 java spring 以允许跨域请求?
这就是我的请求的样子
$.ajax({
crossOrigin: true,
url: "http://localhost:80/adData",
type: "GET",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (responseSchools) {
//stuff
},
error: function (request, status, error) {
//stuff
}
});
Java 应用程序代码
@GetMapping
@CrossOrigin
@RequestMapping(value = AD_DATA_ENDPOINT)
public String getAdData() {
return "wuwuwu";
}
【问题讨论】:
-
在我的情况下,我想在所有 GET 方法上应用跨域,我在班级级别关注
@CrossOrigin(origins = "*", methods = { RequestMethod.GET }, allowedHeaders = "*")。它对我有用。您正在使用的注释很好,应该可以工作。您是否在公共仓库中有代码,以便我可以在本地执行? -
你必须指定
origins参数或其别名value;见docs.spring.io/spring-framework/docs/current/javadoc-api/org/… -
@ShaunakPatel 遗憾的是,这也不起作用。会不会是客户端有问题?
-
客户?你指的是像邮递员或Nodejs应用程序这样的休息工具吗?这不需要对客户端进行任何更改。给定注释只需设置
Access-Control-Allow-Credentials and Access-Control-Allow-Origin标头作为响应。