1

$.ajax には、成功とエラーの 2 つの戻り値があります。
$.ajax が php モジュールを呼び出す場合、成功とエラーへの応答をディスパッチする方法は?
例:
このコード行がエラーを返した場合:

$connection = mysql_connect($server,$user,$password);  


PHPモジュールの実行が正しい場合、ajax-error でエラーを受け取りたい場合は、ajax-sucess でメッセージを受け取りたい
PHP から echo "message" を送信すると、常に ajax-success でメッセージを受け取ります何が成功し、何が成功しないかをテストする義務があります。

4

3 に答える 3

2

jQuery ajaxのドキュメントから:

error(jqXHR, textStatus, errorThrown)リクエストが失敗した場合
に呼び出される関数。...

サーバー側では、リクエストはすでに成功しています。通常、結果のコールバックは、エラー ハンドラではなく、成功ハンドラになります。

ajax-success ハンドラで mysql_connect エラーを処理する必要があります。

于 2012-04-22T13:20:52.920 に答える
0

ajax エラー コールバックは、 ajax呼び出しが機能しない場合にのみエラーを返すと思います。何か (あなたの場合は sql コマンドなど)、(正常に「ajaxed」された)スクリプトが機能しない場合はそうではありません。

ただし、ajax 成功コールバック関数のデータから sql エラーを処理するには、返されたデータを解析できます。つまり、スクリプト出力で id='sql_error' を使用して div を作成し、この div の内容を読み取ることができるということです。SQL エラーが発生しなかった場合、エラー div の内容はゼロである必要があります。

このようなもの、おそらく(テストされていない):

$.get(url, function (data) {
    var sql_error = $("#sql_error", data).html(); 
    // or var content = $("#error", $(data)).html();

    // you can then show output in the way you want, depending on sql_error
});
于 2012-04-22T13:22:54.023 に答える
0

これを試してください....(テスト済み)。これは、サーバー側のエラーの条件で使用します。

header('403 Forbidden', true, 403);
die('forbiden to log in. No authorization');

これにより、エラー関数が呼び出されます。必要に応じてステータス コードとメッセージを入力します。

于 2012-04-23T06:05:06.863 に答える