[英]jQuery AJAX error handling
我在这里搜索了一些问题,但是我对如何在jQuery的AJAX中使用错误处理没有很好的理解(我是一个菜鸟,所以它真的没有意义。)
任何人都可以向初学者描述这个吗? 我目前正在通过AJAX将信息发布到PHP脚本,但是希望允许jQuery识别脚本中返回的数据是错误还是成功。
谢谢! 戴夫
从ajax调用返回的错误是从未成功的页面加载返回结果。 可能是您的php页面返回了一个有效的页面,但结果不是您想要的。 这是在成功回归的情况下处理的。 希望以下代码snippit有助于说明......
$.ajax({
type: "POST",
url: "login.php",
data: "action=login&user=" + user + "&pass=" + pass,
success: function(xhr){
if ((xhr == "Invalid Login")
|| (xhr == "Invalid charaters in username.")
|| (xhr == "Missing username or password.")
|| (xhr == "Unknown Error")) {
$("#loginMessageContent").html(xhr);
}
else {
simplemodalClose (dialog);
}
},
error: function(xhr) {
alert ("Oopsie: " + xhr.statusText);
}
});
实现jQuery AJAX错误处理以处理HTTP Request
是否有错误,如果您的脚本返回“错误”或“成功”。 如果服务器抛出错误(例如404 Not Found或500 Server Error),那么它将触发jQuery的错误函数。 它可以通过几种方式处理,但一种不错的方法是显示div让用户知道有错误。
HTML
<div id="error" style="display: none">There was an error processing your last request</div>
jQuery的
$(function(){
$("#error").ajaxError(function(){
var $error = $(this);
$error.slideDown(500, function(){
window.setTimeout(function(){
$error.slideUp(500);
}, 2000);
});
});
});
如果发生错误,您的“成功”方法都不会触发,并且该div
将向下滑动,等待2秒,然后向上滑动。
测试脚本是否存在错误
正如我所提到的,您所描述的内容听起来像您的服务器脚本正在向客户端发送“错误”或“成功”或类似内容。
例如,如果您使用$.post
,则错误处理代码可能如下所示:
$.post('/your/url', { save_me: true }, function( data ){
if(data == "error"){
// handle error
} else {
// handle success
}
}
这只是一种方法。 我正在构建一个以JSON格式返回其所有数据的应用程序。 如果出现错误,则更改JSON消息以反映此情况。 每个返回对象都具有“成功”或“错误”的“状态”。 如果是错误,那么JSON的“error_message”部分描述了错误。
我希望有所帮助。
即使这不是你的问题,我会在这里发布,因为它是相关的。
在最近的JQuery v1.4版本中 ,JSON响应现在已经过验证。 它打破了我的应用,因为我回来了:
{success:true}
现在它必须是
{"success":true} // HAS to be double quotes, single won't do it
如果不正确,则调用错误处理程序。 简单的修复,但需要一点点弄清楚。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.