java - 如何在 Angular2 中使用后端作为 Liferay 服务器启用 cors 问题

标签 java angular cors liferay-6

我是 Angular2 的新手。我必须创建新的 Angular 应用程序,并且需要使用 Liferay 服务器的服务。

但是当我使用下面的代码调用服务时,它给出了 Cors 错误。

var headers = new Headers();

    headers.append('Access-Control-Allow-Origin', '*');
    headers.append("Content-Type", "application/x-www-form-urlencoded");
    let params: URLSearchParams = new URLSearchParams();   

    this.http.get(localStorage.getItem('domainName')+'/service-name', {headers: headers})
        .subscribe(response => {
            // login successful if there's a jwt token in the response
            console.log('Response'+response.json());
    });

我的后端方法是 GET,并且我在/webapps/Root/web.xml 文件中添加了 Cors 过滤器属性

但是在浏览器控制台中出现以下错误:

XMLHttpRequest 无法加载 http://localhost:9080/service-name 。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin” header 。来源'http://localhost:4200 ' 因此不允许访问。响应的 HTTP 状态代码为 401。

最佳答案

当后端的响应没有必要的 Access-Control-Allow-Origin header 时,会出现此错误。请仔细检查后端的 header 是否配置正确。此外,前端的请求不必包含 Access-Control-Allow-Origin header 。

关于java - 如何在 Angular2 中使用后端作为 Liferay 服务器启用 cors 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41518539/

相关文章:

angular - Angular 9 的国际电话输入

Angular、Google map 、如何从 map 获取标记列表并在其上使用 onClick 事件?

asp.net - 405 方法选项不允许在 asp.net web api Controller 中使用?

elasticsearch - 如何使用 docker 和 Elasticsearch 图像避免 CORS 来源错误

Java 8,用于 Mac OS X 上的 IntelliJ

java - 自定义锁屏实现技术

Angular 2根据掩码验证输入

javascript - CORS 不适用于 Uber API OAuth 端点

java - 为不同的语言环境定制 java.text 格式化程序

java - JHipster一代MS陷入无限循环