我一直在通过执行以下操作来确保我的AJAX请求成功:
$.post("page.php", {data: stuff}, function(data, status) { if(status == "success") { //Code here } else { //Error handling stuff } });
检查状态变量是执行此操作的最佳方法,还是有一种更好的方法来确保请求实际通过?我正在考虑“成功”请求是一个成功命中我要发布到的页面的请求,而不会超时(例如,服务器已关闭,并且在出现故障之前立即进行了AJAX请求)或返回任何404或500错误。
通过这样调用$.post,您将仅自动传递一个success handler函数。
$.post
success handler
如果请求中出现问题,则甚至不会执行此方法。
要拥有更多控制权,请$.ajax()直接使用或传递失败处理程序。看起来像
$.ajax()
$.post("page.php", {data: stuff}, function(data, status) { // we're fine here }).fail(function(err, status) { // something went wrong, check err and status });
使用相同的东西.ajax():
.ajax()
$.ajax({ type: 'POST', url: 'page.php', data: stuff, success: function( data ) { }, error: function(xhr, status, error) { // check status && error }, dataType: 'text' });
您甚至可以将更多的ajax事件处理程序传递给$.ajax,如beforeSend修改/读取XHR标头,或complete使处理程序在请求完成时触发两种方式(错误或不错误)。
$.ajax
beforeSend
complete