Angular2 CORS问题

时间:2016-09-23 11:22:27

标签: asp.net angular cors

我是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的团队处理? 谢谢大家。

2 个答案:

答案 0 :(得分:1)

您需要在API后端启用CORS。 仅出于测试目的,您可以使用此Chrome扩展程序在您的api后端模拟CORS:

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi

答案 1 :(得分:0)

您正在尝试在其他域上发出请求,这是您无法在此处解决的问题。尝试向您支持的代码提出请求,这将解决您的问题。