我开始使用Angular 2并且这样做我在http://localhost:8081/ping设置了一个ASP> NET WebApi本地托管在IIS中(该调用返回一个序列化为JSON对象的字符串),它非常有效。
这是我的服务,
import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class TempService {
constructor(
private http: Http
){}
ping(): Promise<string>{
return this.http.get('http://localhost:8081/ping')
.toPromise().then(res => res.json() as string)
.catch(this.handleError);
}
private handleError(error: any): Promise<any> {
alert(error);
return Promise.reject(error.message || error);
}
}
但是,当我尝试通过此函数进行此调用时,我在实际调用中得到200但是我从handleError函数中得到以下错误
我已经尝试将ASP.NET WebApi部署到Micrsoft Azure站点并且反应完全相同,我知道api正在运行我只是不确定我的服务有什么问题,发生了这件事对于此处的任何其他人或有关问题原因的任何想法?
答案 0 :(得分:0)
Harry Ninh是正确的,一旦我在ASP.NET WebApi中启用了CORS,它就开始在所有浏览器中工作;至少我在上面评论中提到的那些。感谢Harry Ninh的帮助。
答案 1 :(得分:0)
当我使用XHRBackend问题得到解决时,我曾经遇到同样的问题。
在app.module.ts中我写了如下
从'@ angular / http'导入{HttpModule,Http,XHRBackend};
@NgModule({。 。 。 提供者:[ HttpModule,XHRBackend,..
],}
)