首页 > 解决方案 > 如何使用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";
    }

标签: javaspring

解决方案


经过大量搜索后,我找到了解决方案:

代码没有问题,因为您使用的是Cross Originrequest 它首先向OPTIONS服务器发送请求。为了解决这个问题,我在服务器配置部分添加了以下代码:

.antMatchers(HttpMethod.OPTIONS, "/**").permitAll()

还要使用以下代码创建一个文件:

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

我相信这会解决你的问题;)


推荐阅读