Firefox和IE上的Angular 2 http.post错误

时间:2016-09-28 15:15:55

标签: angular typescript cors angular2-http

以下代码在Chrome中没有问题,但在Firefox和IE 11中,错误不允许触发发布请求。 所以服务器没有收到任何请求,错误在请求代码中。 我收到的错误不包含有用的信息。

后端启用了CORS,并且可以正常使用Chrome。

在IE 11中,错误是:

XMLHttpRequest: Network Error 0x2ef3, Could not complete the operation due to error 00002ef3.

方法handleError在控制台中返回

Response with status: 0 for URL: null

这是IE11 Error

的截图图片

在Firefox中,错误是:

Response { _body=Event error, status=0, ok=false, more...}

login(username, password): Observable<boolean> {

    let reqScopes: string[] = ["login.login", "invoices.read"];
    let options = new RequestOptions({withCredentials:true });

    return this.http.post(AppSettings.ApiEndpoint+'/login'+AppSettings.xdebug, JSON.stringify({ username: username, password: password,scopes:reqScopes}),options)
    .map((response: Response) => {
        // login successful if there's a jwt token in the response
        let token = response.json() && response.json().token;
        if (token) {
            // set token property
            this.token = token;

            // store username and jwt token in local storage to keep user logged in between page refreshes
            localStorage.setItem('webinfoUser', JSON.stringify({ username: username, token: token }));

            // return true to indicate successful login
            return true;
        } else {
            // return false to indicate failed login
            return false;
        }
    })
    .catch(this.handleError);
    //.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}

private handleError(error: any) {
    console.log( error);       
    return Observable.throw( error.status );
}

0 个答案:

没有答案