java - 如何使用java spring允许跨源请求
问题描述
我已经尝试了一切。我不知道该怎么做。它只是不起作用。
我实际上已经添加了“@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";
}
解决方案
经过大量搜索后,我找到了解决方案:
代码没有问题,因为您使用的是Cross Origin
request 它首先向OPTIONS
服务器发送请求。为了解决这个问题,我在服务器配置部分添加了以下代码:
.antMatchers(HttpMethod.OPTIONS, "/**").permitAll()
还要使用以下代码创建一个文件:
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
}
我相信这会解决你的问题;)
推荐阅读
- php - 将数组元素移动到数组的开头?
- javascript - 在我们的外部 Angular 库中实现 controlValueAccessor?
- android - Android Firebase:录制 Robo 脚本无法访问数据文件夹
- angular - Jasmine 间谍没有覆盖模拟实现
- android - 使用新的 Flutter Apk 更新 Android App (Google Play)
- html - 如何让按钮水平对齐(使用引导程序)
- swift - 隐藏弃用警告
- python - Python登录验证系统
- javascript - 如何获取使用 jQuery 在函数中设置的变量的值?
- python - 如何通过 Scrapy 将 Metrics 发送到 Prometheus?