繁体   English   中英

如何在同一台机器上制作使用spring创建的angular和rest api?

[英]how to make angular and rest api created using spring work on same machine?

我在计算机上安装了Spring STS,并且正在用Java创建rest api,并使用url http://localhost:8080/projectname/apiname 我在同一台计算机上安装了Visual Studio,并尝试访问我创建的api。 但是,当我尝试在localhost:4200中访问它时,出现以下错误。

相同来源策略禁止读取位于http:// localhost:8080 / org / getRecord /的远程资源。 (原因:CORS标头“ Access-Control-Allow-Origin”缺失)。

邮递员也一样。

我已经在我的web.xml文件中添加了cors允许的原点

<init-param>
            <param-name>cors.allowed.origins</param-name>
            <param-value>*</param-value>
</init-param>

尝试添加Java Restapi的过滤器。

添加过滤器。

public class CORSFilter implements Filter {

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
    HttpServletResponse response = (HttpServletResponse) res;
    HttpServletRequest request = (HttpServletRequest) req;
    response.setHeader("Access-Control-Allow-Origin", "*"); // allow origin
    response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
    response.setHeader("Access-Control-Max-Age", "3600");
    response.setHeader("Access-Control-Allow-Headers", "origin, x-requested-with, content-type, accept, authorization, x-auth-token");

    if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
        response.setStatus(HttpServletResponse.SC_OK);
    } else {
        chain.doFilter(req, res);
    }
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM