PHPスクリプトで成功/エラーの結果を処理する正しい方法はどのようになっていますか?スクリプトに関数があり、失敗または成功します。通常、私はtrueまたはfalseを返します。
しかし、私が正しく理解していれば、Ajax成功関数はスクリプトの結果を気にせず、実際にスクリプトを実行したかどうかだけを気にします。つまり、紛らわしいことに、成功関数のエラーをチェックする必要があります。
では、PHPがエラーを返すにはどうすればよいですか?また、成功関数でそれを確認するにはどうすればよいですか?PHPを単に「echo "true";」にする必要があります。それが成功した場合?
$.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?
}
呼び出しのerror
ハンドラーは$.ajax
、要求からの応答コードが200 OK
。以外の場合にのみ実行されるという点で正しいです。コードが正しく実行されても、クライアント側で処理するエラーがある場合は、応答の状態を示すフラグを返すことができます。JSONを使用するとすると、次のようになります。
{
success: true,
additionalData: 'foo bar'
}
次に、success
ハンドラーでそのフラグを確認できます。
$.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);
}
}
または、PHPに500エラーを返すように強制することもできます。
header("HTTP/1.1 500 Internal Server Error");
ただし、この方法では追加のデータを送信できません。つまり、エラーメッセージをクライアント側のコードに保持する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加