不同本地主机端口上的 postgREST api 的 CORS 问题,然后是本地 Web 应用程序

问题描述

对于一个项目,我正在研究 postgREST API 并将其应用于正在处理的项目。我只是想在来自 SpringBoot Web 应用程序的 ajax 请求中使用 postgREST api。然而,我遇到了这个问题。根据 postgREST 文档,它将允许来自任何域的 ajax 请求。 springboot 应用程序正在 localhost:8080 上运行。

Error from get request

     var uri = "localhost:3000/book";
     $.ajax({
          method: "GET",url: uri,dataType: 'json',success: createBook.showResult
     })

Web 应用程序是一个 Spring Boot 应用程序,它使用 hibernate 将对象持久保存到 postgsql 数据库,我们已经使用 CRUD 存储库构建了它,这些存储库工作正常,但我们的教授希望我们“研究” postgREST 并部分实施。

>

解决方法

你可以将这个类添加到你的spring boot项目中

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    private final long MAX_AGE_SECS = 3600;

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowCredentials(true)
                .allowedMethods("HEAD","OPTIONS","GET","POST","PUT","PATCH","DELETE")
                .maxAge(MAX_AGE_SECS);
    }
}