我是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。
答案 0 :(得分:0)
当后端的响应没有必要的Access-Control-Allow-Origin
标头时,会出现此错误。请仔细检查后端的标头是否已正确配置。此外,前端的请求不一定要有sub
标题。