Asp.net web api Angular2中的错误处理

Asp.net web api Angular2中的错误处理,asp.net-web-api,angular,rxjs,angular2-http,Asp.net Web Api,Angular,Rxjs,Angular2 Http,我正在处理Angular2服务,该服务从RESTfulWebAPI后端返回数据 我试图让它优雅地处理不可用的服务,但是我在错误响应中得到了意外的信息 这是密码 update(fund, transactionId:string, showToastOnError: boolean, useCorrectUrl: boolean) { let options = this.getStartCall(); options.headers.append("transac

我正在处理Angular2服务,该服务从RESTfulWebAPI后端返回数据

我试图让它优雅地处理不可用的服务,但是我在错误响应中得到了意外的信息

这是密码

update(fund, transactionId:string, showToastOnError: boolean, useCorrectUrl: boolean) {
        let options = this.getStartCall();
        options.headers.append("transaction-id", transactionId)
        let url = fundsUrl + (useCorrectUrl ? "" : "breakTheUrl");
        return this._http.put(url, JSON.stringify(fund), options)
            .map(res => res.json())
            //.retry(5)
            .catch(errorResponse => {
                let res = <Response>errorResponse;
                let err = res.json();
                let emsg = err ?
                    (err.error ? err.error : JSON.stringify(err)) :
                    (res.statusText || 'unknown error');
                this._logger.log(emsg, "The fund was not updated", LogLevel.Error, showToastOnError);
                return Observable.throw(emsg);
            })
            .finally(() => this._spinnerService.hide());

    }

我在这里做错了什么,还是这是Angular2 beta 15中的一个错误?

大多数时候,在底层XHR对象上调用
onerror
回调时,您会有这样一个错误值。请参阅源代码中的这一行:

这就是说,404状态代码不应该出现这种情况,而应该出现在像
net::ERR\u NAME\u NOT\u RESOLVED
这样的错误上

404状态代码由
onload
回调处理:

我用beta15做了一个测试,我不能重现你们的问题


请参阅以下内容:。

感谢您的反馈,问题似乎出在我们的WebApi后端。我将URL更改为与您的相同的URL,突然间我得到了正确的错误代码欢迎您!奇怪的是,你在网络流量中看到一个404状态码。你是说在开发工具(网络选项卡)中吗?是的,我是说,我们在webapic中做的事情一定很奇怪。你能添加在开发工具中看到的响应内容(标题、负载)吗?
JSON.stringify(errorResponse)

{"_body":{"isTrusted":true},"status":200,"statusText":"Ok","headers":{},"type":3,"url":null}"

errorResponse.json() 

bubbles: false
cancelBubble: false
cancelable: false
currentTarget: XMLHttpRequest
defaultPrevented: false
eventPhase: 2
isTrusted: true
isTrusted: true
lengthComputable: false
loaded: 0
path: Array[0]
position: 0
returnValue: true
srcElement: XMLHttpRequest
target: XMLHttpRequest
timeStamp: 1460990458693
total: 0
totalSize: 0
type: "error"
__proto__: XMLHttpRequestProgressEvent