С момента обновления с 1.1.3 до 1.4.2 я получаю неотображаемые ошибки JS, когда Breeze пытается проанализировать responseText, который находится в формате HTML, а не JSON. В версии 1.1.3 код заверяется в try/catch, который улавливает ошибку синтаксического анализа. Ошибка вызывается на «JSON.parse (XHR.responseText)». Но поскольку он пойман, это отлично работает. Сообщение об ошибке активируется до вызывающего абонента.Breeze.js синтаксический анализ XHR.responseText
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 нет попытки/улова, и я получаю неперехваченную ошибку. Я не знаю, должен ли я сам это поймать. Мне не нужно было ничего делать в предыдущей версии.
function extractErrors(XHR) {
if (!XHR.responseText) return null;
var responseObj = JSON.parse(XHR.responseText);
return responseObj && responseObj.EntityErrors;
}
Благодаря