0

サーバーからjsonデータを取得して、それらをテーブルとして表示しています。

$('#queryFrom').ajaxForm({                    
                dataType:  'json',                                        
                beforeSubmit:  showRequest,  // pre-submit callback
                success:   processJson,                    
                error: function (xhr, ajaxOptions, thrownError){
                    $('#queryResult').html('<div class="ui-corner-all ui-state-error"><p><span class="ui-icon ui-icon-alert"></span>'+thrownError+'</p></div>');
                    $('#queryResult').show("slow");
                }
            });

mysql エラーを json/ajax エラー側から切り離すことはできますか? 現在、次のようになっています: Invalid JSON: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'simover.simulation' does not exist{} jquery によってスローされるメッセージをカスタマイズできますか? ありがとうアルマン。

編集

throwErrorの代わりにxhr.responceTxtを使用できます。

4

1 に答える 1

5

現在、サーバーが問題に遭遇したためではなく、サーバーの応答にエラーがあるために、エラーコールバックが呼び出されています。Javascriptエンジンは、JSONデータが返送されることを期待しているためエラーをスローしますが、代わりにBase table or view not found...、有効なJSON文字列ではないプレーンな文字列を取得します。

たとえば、andを使用してサーバー上でこれらのエラーをキャッチし、エラーが発生した場合に備えて何らかの特別な応答を返すことをお勧めしtryますcatch。このような:

{
    "ok": false, 
    "error_key": "database_error", 
    "error_text": "Base table or view not found: 1146 Table 'simover.simulation' doesn't exist"
}
于 2010-08-05T12:51:19.530 に答える