PHP Ajax成功

Cha*_*ben 3 html php jquery

我正在使用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)

现在你的脚本可以回显truefalse.

如果你想发送复杂的对象,你可以把他们作为使用JSON json_encode功能和HTTP Content-Type头设置为application/json使用该header功能.

  • 当然有=>你可以将HTTP状态代码设置为不同于200.或者在成功回调中你可以测试PHP脚本返回的响应. (2认同)