How is the correct way to handle success/error results in my PHP script? I have a function in the script, and it either fails or succeeds. Normally, I would return true or false.
But if I understand correctly, Ajax success function doesn't care about the result in my script, it only cares whether or not it actually ran my script. In other words, I have to, confusingly, check for errors in the success function.
So how should I have PHP return error, and how do I check for it in the success function? Should I have PHP simply "echo "true";" if it succeeds?
$.ajax({
type: 'POST',
url: 'jquery-actions.php',
data: formData,
dataType: 'text',
encode: true,
error: function (response) {
console.log(response);
},
success: function (response) {
//How to find out whether or not PHP function worked?
}
You are correct in that the error
handler of the $.ajax
call only executes if the response code from the request is anything other than 200 OK
. If you code executes correctly, but you have an error which you want the client side to handle, you would could return a flag indicating the state of the response. Assuming you use JSON, it may look something like this:
{
success: true,
additionalData: 'foo bar'
}
Then you can check that flag in your success
handler:
$.ajax({
type: 'POST',
url: 'jquery-actions.php',
data: formData,
dataType: 'text',
encode: true,
error: function (response) {
console.log(response);
},
success: function (response) {
if (response.success) {
console.log('it worked!');
} else {
console.log('there was a problem...');
console.log(response.additionalData);
}
}
Alternatively you could force your PHP to return a 500 error:
header("HTTP/1.1 500 Internal Server Error");
However you would not be able to send additional data with this method, meaning error messages would have to be kept in client side code.
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加