ホームページ  >  記事  >  ウェブフロントエンド  >  200 OK 応答にもかかわらず、jQuery Ajax 呼び出しでエラー イベントがトリガーされるのはなぜですか?

200 OK 応答にもかかわらず、jQuery Ajax 呼び出しでエラー イベントがトリガーされるのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-23 04:08:30694ブラウズ

Why Does My jQuery Ajax Call Trigger an Error Event Despite a 200 OK Response?

jQuery エラー イベントによる 200 応答の処理

Ajax リクエストを発行すると、サーバーが 200 OK ステータスを返す状況がよく発生します。コードは、リクエストが成功したことを示しますが、jQuery のエラー イベントがトリガーされます。リクエストは正常に完了したように見えるため、これは特に不可解になる可能性があります。

この動作を理解するには、jQuery が指定された dataType パラメーターまたは Content-Type に基づいて応答本文を解釈しようとすることを認識することが重要です。サーバーによって送信されるヘッダー。ただし、この変換が失敗した場合 (無効な JSON または XML などにより)、jQuery はエラー コールバックを起動します。

提供された jQuery コードを検討してください:

dataType: "json"

この設定では、jQuery は次のことを期待します。サーバーからの有効な JSON 応答。ただし、サーバー側の C# コードは、JSON ではない HTML スニペットを返します。これにより、jQuery が変換に失敗し、エラー コールバックが呼び出されます。

この問題に対処するには、次のいずれかを行うことができます。

  • dataType パラメータを削除します。 これにより、jQuery による自動変換の試行が防止され、ステータス コードに基づいて成功または失敗を処理できるようになります。
  • 有効な JSON を返すようにサーバー側コードを構成します。 これには、必要に応じて Content-Type ヘッダーを application/javascript または application/json に変更し、整形式の JSON 応答。

または、アラートを提供するサーバー側コード:

success: function (result) {
  alert("Record Deleted");
}

これらのソリューションを実装することで、Ajax リクエストが 200 OK レスポンスを正しく処理し、期待どおりの動作を提供することを保証できます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。