我是angular2的新手,为了公平起见,我尝试修复的知识很少,但是我遇到了一些关于跨站点请求的问题,试图从其他应用程序访问服务但是无论我尝试做什么,我都有这个问题
XMLHttpRequest cannot load https://hr/Team/EditEmployeeInfo.aspx. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:54396' is therefore not allowed access. The response had HTTP status code 401.
这是我的angular2服务,我尝试过这样的事情
getUserHrtbProfile(userId): Promise<any> {
const headers = new Headers();
headers.append('Access-Control-Allow-Headers', 'Content-Type');
headers.append('Access-Control-Allow-Methods', 'GET, PUT, POST, DELET');
headers.append('Access-Control-Allow-Origin', '*');
var apiUri: string = "https://hrtb/Team/EditEmployeeInfo.aspx?emplid={0}&Menu=InfoEmployee&T=0".replace("{0}", userId);
return this.http.get(apiUri, headers).map(result => result.json()).toPromise();
}
这是我的组件
this.bannerService.getUserHrtbProfile(this.userId).then(hrtbJson => {
this.hasHrtbAccess = hrtbJson.HasHrtbAccess;
this.hrtbProfileUrl = hrtbJson.HrtbProfileUrl;
}).catch(err => {
this.hasHrtbAccess = false;
});
我已经针对我的问题搜索解决方案,但仍然找不到符合我需要的解决方案。
Angular 2 http request with Access-Control-Allow-Origin set to *
但最重要的是,这是一个我需要解决的角度问题吗?或者事实上,正如我所知,它应该由暴露API的团队处理? 谢谢大家。
答案 0 :(得分:1)
您需要在API后端启用CORS。 仅出于测试目的,您可以使用此Chrome扩展程序在您的api后端模拟CORS:
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi
答案 1 :(得分:0)
您正在尝试在其他域上发出请求,这是您无法在此处解决的问题。尝试向您支持的代码提出请求,这将解决您的问题。