我已经研究了一段时间,很难弄清楚如何将服务器错误消息传递给客户端。
在服务器上我有(简化):
export function get(req: express.ExpressServerRequest, res: express.ExpressServerResponse) {
res.statusCode = 500;
res.send('CUSTOM ERROR MESSAGE');
}
在客户端:
public fetchObject(successF: Function, failF: Function): void {
this.myObj = new MyObj();
this.myObj.fetch({ success: successF, error: failF });
}
private failF(model, xhr, options): void {
// Want to get access to "CUSTOM ERROR MESSAGE"
}
xhr对象responseText为空,statusText始终为"error"。
有什么建议吗?谢谢
找到了一个解决方案。定义一个类变量并捕获fetch调用的返回:
private xhr: XMLHttpRequest = null;
然后:
public fetchObject(successF: Function, failF: Function): void {
this.myObj = new MyObj();
this.xhr = this.myObj.fetch({ success: successF, error: failF });
}
最后:
private failF(model, xhr, options): void {
doSomething(this.xhr.responseText);
}
this.xhr将包含reponseText(即"自定义错误消息")。本地xhr仍然是一个空白字符串。
我仍然不确定为什么会出现这种情况,如果有人有一些见解,我将不胜感激。