【发布时间】:2011-12-18 17:57:12
【问题描述】:
什么情况下会调用xhr方法的error?即使响应为 200,也会调用错误代码。我正在使用 xhrPost 方法。
更新:
dojo.xhrPost({
url: url,
handleAs: respType /* json */,
content: data,
load: onServerResponse,
error: onHttpError
})
function onServerResponse(response, ioArgs) {
if(onResponse !== null) {
onResponse(response);
}
}
function onHttpError(error, ioArgs) {
if (showHttpError === true) {
var errMsg = "";
switch (ioArgs.xhr.status) {
case 0: errMsg = "Please check Web Server status."; break;
case 404: errMsg = "HTTP (404): Requested Page Not Found"; break;
case 500: errMsg = "HTTP (500): The server reported an Error"; break;
default: errMsg = "Unhandled HTTP error - " + ioArgs.xhr.status;
}
ConsoleUtils.showNotificationAlertDialog(errMsg, ConsoleConstants.INFORMATION);
}
}
这些是来自 Firebug 的响应标头:
服务器 Apache-Coyote/1.1 内容类型 application/json;charset=UTF-8 传输编码分块 日期 2011 年 12 月 18 日星期日 18:06:54 GMT
响应正文 {"message":"Kiosk 已成功删除","success":true}
尽管返回状态为 200,但仍会调用警报对话框。
【问题讨论】:
-
感谢您的信息。我已经用代码 sn-ps 和 firebug 内容更新了我的问题。
-
你能发布你的 onResponse 方法吗?
-
检查你的
onServerResponse方法没有抛出错误。 -
我猜错误出现在前 200 个状态之后...当您调用 onResponse(response);
标签: dojo