我是 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/