这里我有jQuery ajax调用SOMETIMES执行的.php文件让我们说以下
echo "hello"
这是:
$.ajax({
type: "POST",
url: myurl.php
data: data_string,
timeout: 6000,
success: function () {
}
});
我想知道:当在PHP文件中执行类似上一个echo的操作时,是否可以使ajax返回ERROR而不是SUCCESS?我的意思是,如果php文件按照我的意愿执行,检查这个$ .ajax。
更好地解释: 当请求无法完成时我会收到错误,并且可能会成功。但是我希望得到这个PHP文件的返回值。如果它返回1,我想做点什么。如果它返回2,相反,我想做别的事情。希望我能更好地解释一下......
提前致谢。
答案 0 :(得分:4)
我建议在PHP文件中使用json_encode()
。例如:
echo json_encode(array('success' => 'do_foo'));
exit();
然后您可以在成功回调中添加条件:
$.ajax({
type: "POST",
url: myurl.php
data: data_string,
dataType: "JSON", //tell jQuery to expect JSON encoded response
timeout: 6000,
success: function (response) {
if (response.success === 'hello'){
console.log(response);
} else {
console.log('else');
}
}
});
答案 1 :(得分:1)
根据你的问题,make php返回1或返回2.你可以在失败时返回1,在成功时返回0(null)。然后你可以为你的ajax返回做这个。
$.ajax({
type: "POST",
url: "YOUR URL",
data: dataString,
success: function(server_response)
{
if(server_response == 1)
{
alert("You have made a mistake");
return true;
}
HERE YOU WILL PUT WHAT HAPPENS ON SUCCESS
}
});
答案 2 :(得分:0)
$.ajax({
type: "POST",
url: myurl.php
data: data_string,
timeout: 6000,
success: function (msg) {
if (msg != "Hi")
{
//TODO
} else
{
//TODO
}
}
});
答案 3 :(得分:0)
您可以使用错误回调:
$.ajax({
type: "POST",
url: myurl.php
data: data_string,
timeout: 6000,
success: function () {
},
error: function() {
/* Code reacting to error here */
}
});
此外,还有其他回调机会,您可以在$.ajax documentation page查看。
如果您要从PHP“说”出现错误,可以通过以下两种方式完成:
您可以在PHP中打印一个含义错误的关键字,然后在成功函数中检查它:
success: function (data) {
if (data == 'error') {
} else {
}
}
或者,另一方面,您可以提供PHP权限标头以导致“错误”。然后你可以像往常一样使用错误回调。我会选择这种方式。