【发布时间】:2012-08-17 21:53:00
【问题描述】:
我正在测试一个 jQuery ajax 请求的错误回调,我有一个问题。下面是我的ajax请求
$.ajax({
type:'get',
url:'non-existant-file.php',
data: { newFile : $('#name').val() },
beforeSend: function() {
// make nice image to show the request is running
},
success: function() {
// show results of successfull request
},
error: function(jq,status,message) {
alert('A jQuery error has occurred. Status: ' + status + ' - Message: ' + message);
}
});
该文件不存在,仅用于测试引发的错误。我希望它返回 404 作为状态,并返回“找不到文件”作为消息。至少,当我阅读docs时,我是这样理解的:
第二个参数(除了 null)的可能值是“timeout”、“error”、“abort”和“parsererror”。发生 HTTP 错误时,errorThrown 会接收 HTTP 状态的文本部分,例如“未找到”或“内部服务器错误”。从 jQuery 1.5 开始,错误设置可以接受一个函数数组。每个函数都会被依次调用。
但是,我收到的警报与我预期的完全不同:
A jQuery error has occurred. Status: error - Message: undefined
我对文档的理解有误还是我做的不对?
【问题讨论】:
-
如果 url 不存在,您的应用程序中是否有错误页面?
-
喜欢默认的 404 页面?那就不要。我不。在 chrome 错误控制台中,它只是抛出 'GET localhost/km/admin/createFile.php?newFile= 404 (Not Found)' 我认为这是返回 ajax 错误的方式。