如何在Angular2中使用Backend作为Liferay服务器启用cors问题

时间:2017-01-07 06:25:22

标签: 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。对预检请求的响应没有通过访问控制检查:否'访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' http://localhost:4200'因此不允许访问。响应的HTTP状态代码为401。

1 个答案:

答案 0 :(得分:0)

当后端的响应没有必要的Access-Control-Allow-Origin标头时,会出现此错误。请仔细检查后端的标头是否已正确配置。此外,前端的请求不一定要有sub标题。

相关问题