2017-05-16 15 views
0

私の現在のスクリプトは、実行が失敗したときに曖昧なエラー&一般的なエラーメッセージのみを処理しますが、さまざまなエラーメッセージを返すようにしたいと思います。私が見つけた他の多くの答えは、私がここで望んでいることができない場所にすでにあるものと似ています。PHPからのAJAXエラー処理

現在のAJAX(私は変更が必要です何)

​​

現在のPHP:

if (isset($_GET['value1']) && isset($_GET['value2']) && isset($_GET['isChecked'])) { 

    // Execution logic here... if it fails, the whole script terminates 
    echo json_encode(""); 
} 

私はAJAXに詳細なエラーメッセージを返すようにPHPを行う上で計画して何を:

if (isset($_GET['value1']) && isset($_GET['value1']) && isset($_GET['isChecked'])) { 

    $errorMessage = ""; 

    if (isset($_GET['isChecked']) == 'false'){ 
     $errorMessage = "The check box is false"; 
    } else { 
     $errorMessage = "The check box is true"; 
    } 

    echo json_encode("$errorMessage"); // But how I handle it in the AJAX error:? 
} 

アラート([error_message])が実行されるように、「AJAXエラー:」で処理されるエラーメッセージをどのように取得できますか?

+1

ajaxが呼び出すPHP上に誤りのあるコードがあると、 'Ajax Error:'のことが起こります。 phpで適切にエラーを処理してフラグを送り返し、jsの応答としてajaxの応答として検出し、そのエラーが返されなかった場合は別の動作をします。 – coderodour

+0

'error()'メソッドをトリガーしたい場合は、エラーコードとともにレスポンスを返す必要があります。何かのような: 'http_response_code(422);' json応答をエコーする前に動作するはずです。 –

答えて

1

jQueryのajax方法についてerrorコールバックを使用すると、エラーに関する詳細情報を取得するために使用できる3つの引数を受け付けます:

Function(jqXHR jqXHR, String textStatus, String errorThrown) 

を応答を取得中に何らかのエラーが発生した場合errorコールバックにのみ呼び出されますのでご注意くださいサーバーからサーバーに到達できないか、Ajaxリクエストの応答を生成しようとしているときに何らかのサーバーエラーが発生しました。

あなたのPHPファイルが応答を返すことができる場合、実際にはajaxが成功し、適切な応答を返すため、successコールバックによって処理されます。

errorコールバックでカスタムエラーのケースを処理したい場合は、httpエラーコードもajaxレスポンスヘッダーに追加する必要があります。