Angular2与This.http.get的问题

时间:2016-10-20 02:55:34

标签: angular angular2-services angular2-http

我开始使用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函数中得到以下错误

enter image description here

我已经尝试将ASP.NET WebApi部署到Micrsoft Azure站点并且反应完全相同,我知道api正在运行我只是不确定我的服务有什么问题,发生了这件事对于此处的任何其他人或有关问题原因的任何想法?

2 个答案:

答案 0 :(得分:0)

Harry Ninh是正确的,一旦我在ASP.NET WebApi中启用了CORS,它就开始在所有浏览器中工作;至少我在上面评论中提到的那些。感谢Harry Ninh的帮助。

答案 1 :(得分:0)

当我使用XHRBackend问题得到解决时,我曾经遇到同样的问题。

在app.module.ts中我写了如下

从'@ angular / http'导入{HttpModule,Http,XHRBackend};

@NgModule({。 。 。  提供者:[         HttpModule,XHRBackend,..

],}