我正在使用jquery对php脚本进行ajax调用.但是,为了触发ajax中的成功/错误处理程序,php脚本需要返回什么.所以这是ajax:
$.ajax({
data: $this.serialize(),
type: "POST",
url: "/Scripts/script.php",
success: function() {
alert("script was successful");
},
error: function() {
alert("script was unsuccessful");
}
});
Run Code Online (Sandbox Code Playgroud)
所以php脚本可以返回一些内容,例如:
return 0, 1
return true, false
return "true", "false"
echo "true", "false
Run Code Online (Sandbox Code Playgroud)
哪一个激发ajax成功/错误调用?
Dar*_*rov 11
只要服务器端脚本发送HTTP状态代码200,它将始终触发success回调.答案根本不重要.只有状态代码.在您显示的所有示例中,您正在发送HTTP状态代码200 =>成功回调将始终触发.
您可以使用该http_response_code功能将状态代码强制为不同于200的状态.
作为替代方法,您可以让PHP脚本返回一些信息,然后在success函数内部测试脚本返回的值,以了解某些服务器端处理是否失败:
$.ajax({
data: $this.serialize(),
type: "POST",
url: "/Scripts/script.php",
success: function(result) {
if (result == 'true') {
alert("script was successful");
} else {
alert("script was unsuccessful");
}
},
error: function() {
alert("something very bad went wrong => there's a bug in the script");
}
});
Run Code Online (Sandbox Code Playgroud)
现在你的脚本可以回显true或false.
如果你想发送复杂的对象,你可以把他们作为使用JSON json_encode功能和HTTP Content-Type头设置为application/json使用该header功能.