我有一个没有被错误捕获的post函数.
这是从postride.PHP返回的值.
if ($group_id==0) { echo 'No group selected'; return false; exit; }
这是jquery代码:
$(document).ready(function(){ $('#postride').submit(function(event) { event.preventDefault(); dataString = $("#postride").serialize(); $.ajax({ type: "post",url: "postride.PHP",data:dataString,error: function(returnval) { $(".message").text(returnval + " failure"); $(".message").fadeIn("slow"); $(".message").delay(2000).fadeOut(1000); },success: function (returnval) { $(".message").text(returnval + " success"); $(".message").fadeIn("slow"); $(".message").delay(2000).fadeOut(1000); //setTimeout( function() { top.location.href="view.PHP" },3000 ); } }) return false; });
});
post函数返回false,但错误函数不会触发,只有成功函数.它将发布“No group selected success”.
谢谢你的帮助!
解决方法
jQuery ajax方法中的错误选项是由错误的连接,超时,无效的URL,这种性质的东西引起的错误.这不是你想的那种错误.
大多数人做的是这样的……
if ($group_id == 0) { echo json_encode(array( 'status' => 'error','message'=> 'error message' )); } else { echo json_encode(array( 'status' => 'success','message'=> 'success message' )); }
JavaScript的
$(document).ready(function(){ $('#postride').submit(function(event) { event.preventDefault(); dataString = $("#postride").serialize(); $.ajax({ type: "post",dataType:"json",data: dataString,success: function (response) { if(response.status === "success") { // do something with response.message or whatever other data on success } else if(response.status === "error") { // do something with response.message or whatever other data on error } } }) return false; });