【发布时间】:2018-09-15 02:57:40
【问题描述】:
我通常一直使用 XMLHttpRequest 来执行 Ajax 调用。但是,当服务器出现错误时,我想控制台记录错误,这样我就不必跑到服务器那里查看事件日志。
这是我通常做的:
function LoadPage(){
var parameters="this=that";
var x = new GetXmlHttpObject();
x.open("POST", "Ajax.aspx?Function=LoadPage")
x.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
x.ontimeout = function () { location.reload(true); }
x.send(parameters);
x.onreadystatechange = function () {
if (x.readyState == 4 && x.status == 200){
//Do Stuff with the response
}
}
但如果服务器的请求有错误,我会在 x.send(parameters) 行收到错误。我试图将它包装在 try..catch 中,但即使在 try 中保存了命令,也会在控制台中出现错误。
如何使用这种结构来控制台记录来自服务器的 500 错误?
【问题讨论】:
-
“但是如果服务器的请求有错误,我会在 x.send(parameters) 行得到错误” 是什么让你这么认为?如果是 500 错误,您将在 readystate 回调中得到它。它是异步的,就像您已经检查过的 200 响应一样。
-
This 可能有用。
-
好的 - 我明白了。我的 Chrome 控制台在该行将其指示为错误,这是真的,但我可以使用另一个 x.resadyState == 4 && x.status==500.. 来捕获错误。谢谢!
标签: javascript ajax