Json Breeze.js解析XHR.responseText
自从从1.1.3升级到1.4.2以来,当Breeze试图解析HTML格式而不是JSON格式的responseText时,我一直遇到未捕获的JS错误。在版本1.1.3中,代码被包装在try/catch中,它捕获解析错误。该错误在“JSON.parse(XHR.responseText)”上抛出。但既然它被抓到了,这个效果很好。错误消息会向调用者弹出Json Breeze.js解析XHR.responseText,json,parsing,breeze,responsetext,Json,Parsing,Breeze,Responsetext,自从从1.1.3升级到1.4.2以来,当Breeze试图解析HTML格式而不是JSON格式的responseText时,我一直遇到未捕获的JS错误。在版本1.1.3中,代码被包装在try/catch中,它捕获解析错误。该错误在“JSON.parse(XHR.responseText)”上抛出。但既然它被抓到了,这个效果很好。错误消息会向调用者弹出 var err = new Error(); err.XHR = XHR; err.message = XHR.statusText; err.res
var err = new Error();
err.XHR = XHR;
err.message = XHR.statusText;
err.responseText = XHR.responseText;
err.status = XHR.status;
err.statusText = XHR.statusText;
if (err.responseText) {
try {
var responseObj = JSON.parse(XHR.responseText);
err.detail = responseObj;
if (responseObj.ExceptionMessage) {
err.message = responseObj.ExceptionMessage;
} else if (responseObj.InnerException) {
err.message = responseObj.InnerException.Message;
} else if (responseObj.Message) {
err.message = responseObj.Message;
} else {
err.message = XHR.responseText;
}
} catch (e) {
}
}
return err;
在1.4.2中没有try/catch,我得到了一个未捕获的错误。我不知道我自己是不是该抓到这个。在以前的版本中,我不必做任何事情
function extractErrors(XHR) {
if (!XHR.responseText) return null;
var responseObj = JSON.parse(XHR.responseText);
return responseObj && responseObj.EntityErrors;
}
谢谢我将升级到Breeze的最新版本,现在是1.4.6。这个版本确实对新的HttpResponse对象有一个try/catch,它是XHR的包装器