ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery Ajax リクエストが 200 OK を返すのに、エラー イベントがトリガーされるのはなぜですか?

jQuery Ajax リクエストが 200 OK を返すのに、エラー イベントがトリガーされるのはなぜですか?

Linda Hamilton
リリース: 2024-11-27 18:11:13
オリジナル
817 人が閲覧しました

Why Does My jQuery Ajax Request Return 200 OK But Trigger the Error Event?

jQuery Ajax リクエストは成功 (200 OK) を返しますが、エラー イベントがトリガーされます

jQuery Ajax リクエストは常に 200 OK を返し、成功したことを示します応答。ただし、jQuery は依然として成功イベントではなくエラー イベントを実行しています。

問題:

jQuery の $.ajax を使用する場合、dataType パラメーターが に設定されている場合"json" (コードにあるように) は、サーバーからの応答が有効な JSON であることを期待します。ただし、あなたの場合、サーバー応答は HTML であり、有効な JSON ではありません。これにより、jQuery は解析エラーをスローし、エラー イベントをトリガーします。

解決策 1: dataType: 'json' を削除します

1 つの解決策は、dataType パラメータを削除することです。 Ajax リクエスト。これにより、jQuery はサーバーから送信する HTML を含む応答をプレーンテキストとして解釈できるようになります。

$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow',
    contentType: 'application/json; charset=utf-8',
    data: json,
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed
});
ログイン後にコピー

解決策 2: サーバーから JSON を返す

または、HTML の代わりに JSON を返すようにサーバー側の C# コードを変更することもできます。これにより、jQuery が応答を正しく解析し、成功イベントを実行できるようになります。

private void test() {
    Response.ContentType = "application/json";
    Response.Write("{ \"message\": \"Record Deleted\" }");
}
ログイン後にコピー
この変更により、jQuery は有効な JSON 応答を受信し、期待どおりに成功イベントをトリガーします。

以上がjQuery Ajax リクエストが 200 OK を返すのに、エラー イベントがトリガーされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート