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

在Spring Data Rest中支持跨源请求

薛淳
2023-03-14

我有一个web应用程序,我正在使用Angular 2和Spring Boot开发。我使用spring-boot-data-rest依赖项将存储库公开为HTTPendpoint。

在开发过程中,我在运行端口8080的本地tomcat上运行后端spring boot项目。为了开发前端,我使用angular-cli在端口4200上为我的Angular2应用程序提供服务。我在4200上运行的前端需要能够到达在8080上公开的endpoint,但这不起作用,因为:

@RestController
public class MyController {
    @CrossOrigin(origins = "http://localhost:4200")
    @RequestMapping(value = "/whatever")
    public void whatever() {
        //whatever
    }
}

共有1个答案

公冶阳德
2023-03-14

我已经使用了自定义的CORS过滤器来使其工作:

/**
 * Filter for enabling CORS support.
 */
@Component
public class CorsFilter extends OncePerRequestFilter {

    @Override
    protected void doFilterInternal(final HttpServletRequest request, final HttpServletResponse response,
                                    final FilterChain filterChain) throws ServletException, IOException {
        response.addHeader("Access-Control-Allow-Origin", "*");
        response.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, PATCH, HEAD, OPTIONS");
        response.addHeader("Access-Control-Allow-Headers", "Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
        response.addHeader("Access-Control-Expose-Headers", "Access-Control-Allow-Origin, Access-Control-Allow-Credentials");
        response.addHeader("Access-Control-Allow-Credentials", "true");
        response.addIntHeader("Access-Control-Max-Age", 10);
        filterChain.doFilter(request, response);
    }
}
 类似资料:
  • 问题内容: 我正在尝试运行以下代码: 但发生以下错误: XMLHttpRequest无法加载file:///home/93579551515/Desktop/Angular/p1.html。跨源请求仅支持HTTP。 我不想在网络服务器上运行它。 问题答案: 您可以添加模板,如和你通过将它们内部的标签,如在文档中提到。 然后,将不再需要发出AJAX请求来获取它们。 请注意,这些元素必须出现 在后面

  • 问题内容: 我正在使用以下代码提出AJAX请求: 但是从Google Chrome JavaScript控制台,我一直收到此错误: XMLHttpRequest无法加载文件:/// C:/xampp/htdocs/webname/resources/templates/signup.php。跨源请求仅受HTTP支持。 问题是 signup.php 文件托管在我的本地Web服务器上,这是所有网站的运

  • 我试图完成角快速入门教程,但我得到了CORS错误。 我在windows主机文件中的system32/drivers/etc/下配置了此主机: 我在apache中配置了这个虚拟主机 null 这是我的package.json: 这是我的index.html: 这是我的grunt ts编译器文件:

  • 我得到以下错误: 我知道这个问题以前已经回答过了,但我仍然没有找到解决问题的方法。我试着在chrome上运行<code>。exe--允许从命令提示符下的文件访问文件,并将文件移动到本地文件系统,但我仍然收到相同的错误。 我感谢任何建议!

  • 问题内容: 这是我的代码: 我在本地有一个简单的JSON文件,我正在尝试使用AngularJS的方法读取它。我收到以下错误: XMLHttpRequest无法加载文件:/// C:/Users/Avraam/Documents/GitHub/AngularJS/app/js/Services/products.json仅HTTP支持跨源请求。angular.min.js:73错误:发生网络错误。