当前位置: 首页 > 知识库问答 >
问题:

Spring靴和紧身裤

丁英韶
2023-03-14
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**");
    }
}
 $.get("someUrl, function(data, status){
     console.log(data[0].latitude);
 });
 $.ajax({
        url: 'someUrl',
        type: 'post',
        dataType: 'json',
        crossDomain: true,
        contentType: "application/json; charset=utf-8",
        success: function (data) {
            console.log(data);
        },
        data: object
    });
OPTIONS XHR  "someUrl" [HTTP/1.1 403 Forbidden 4ms]
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at  "someUrl". 
(Reason: CORS header 'Access-Control-Allow-Origin' missing).

我该如何解决这个问题?

共有1个答案

宿镜
2023-03-14

使用Spring Boot app配置CORS过滤器的简单方法是创建@component类,该类实现filter如下所示:

@Component
public class SimpleCORSFilter implements Filter {

    @Override
    public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE, PATCH");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
        response.setHeader("Access-Control-Expose-Headers", "Location");
        chain.doFilter(req, res);
    }

    @Override
    public void init(FilterConfig filterConfig) {}

    @Override
    public void destroy() {}

}

它与Spring-Boot 1.3.0配合使用效果很好

编辑(2017年10月):

 类似资料:
  • 我想做一些spring boot应用程序。我已经创建了spring boot项目,但我有一个问题。我的控制器看起来像: 但我看到的并不是索引。html,但只有一个单词“index”。所以我想用角度。 和控制器: 我的索引。html 但它不起作用,我只在本地主机上看到错误。 如何使这个角度控制器正常工作并返回正确的视图?

  • 我使用Spring引导1.3.3和黑兹尔卡斯特我的构建看起来像: 当服务在Linux执行时,我在日志中看到: 但我在油罐里看到hazelcast-all.jar有线索吗?

  • 我想得到帮助,使我的spring boot应用程序更安全。 我有一个RESTful API,目前没有实现安全性。另一个spring boot应用程序通过HTTP请求(GET、POST、PUT…)访问该API。 最近,我学习了一个REDHAT教程,该教程演示了如何使用keycloak制作一个更安全的Spring启动应用程序。 我想学习如何使用这个安全组合(springsecurity-keycloa

  • 我试图在Spring Boot项目中与Hibernate和Spring JPA集成Flyway for Migration。我遇到以下异常: 我正在使用Hibernate和一个配置java文件,用于postgres(开发阶段)和h2(本地)。签名是这样的: 我找不到关于我在这个问题中描述的问题的任何东西。有人能帮忙吗?

  • 我正在用Thymeleaf构建一个Spring Boot应用程序。我的模板(视图)和静态文件夹都在src/main/Resources/静态和src/main/Resources/tem板下。当我通过main方法(使用eclipse)运行应用程序时,一切都很好。但是,我已经按照说明创建了一个war文件,当我将其部署到Tomcat 7时——静态内容丢失了,只显示了Thymeleaf html模板。

  • 我有一个在8888端口上运行的Spring Boot后端应用程序和一个在4200端口上运行的Angular前端应用程序。 在我的Spring Boot应用程序中,我定义了以下bean来处理CORS: 我的配置如下所示: 通过这种配置,一切正常,我可以从Angular应用程序成功调用我的API。 但我想启用CSRF,所以我将安全配置更改为: 我在Angular应用程序中添加了以下: 问题是始终返回。