JSONサービスが失敗/エラー時に返すべきもの
質問
私はC#でJSONサービスを書いています(.ashxファイル)。サービスへのリクエストに成功すると、いくつかの JSON データを返します。例外がスローされた(例:データベースのタイムアウト)、またはリクエストが何らかの方法で間違っていた(例:データベースに存在しないIDが引数として与えられた)ために、リクエストが失敗した場合、サービスはどのように応答すべきでしょうか?どのようなHTTPステータスコードが賢明でしょうか、そして、もしあれば、どんなデータでも返すべきでしょうか?
私は、サービスが主にjQuery.formプラグインを使用してjQueryから呼び出されることを期待していますが、jQueryまたはこのプラグインは、エラー応答を処理するためのデフォルトの方法を持っていますか?
EDITです。 jQuery + .ashx + HTTP [ステータスコード] 成功時にはJSONを返しますが、エラー時には文字列を返すことにしました。jQuery.ajaxのエラーオプションが期待するのはこれのようです。
どのように解決するのですか?
返されるHTTPステータスコードは、発生したエラーの種類に依存する必要があります。ID がデータベースに存在しない場合は 404 を返し、ユーザーがその Ajax 呼び出しを行うのに十分な権限を持っていない場合は 403 を返し、レコードを見つけることができる前にデータベースがタイムアウトした場合は 500(サーバー エラー)を返します。
jQueryは自動的にこのようなエラーコードを検出し、Ajaxの呼び出しで定義したコールバック関数を実行します。ドキュメントは http://api.jquery.com/jQuery.ajax/
の短い例です。
$.ajax
エラーコールバックの例です。
$.ajax({
type: 'POST',
url: '/some/resource',
success: function(data, textStatus) {
// Handle success
},
error: function(xhr, textStatus, errorThrown) {
// Handle error
}
});
関連
-
[解決済み] jquery - is not a function エラー
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] 正しい」JSONの日付形式とは?
-
[解決済み] Chromeを使用してASP.NET Web APIがXMLの代わりにJSONを返すようにするにはどうすればよいですか?
-
[解決済み] YAMLとJSONの違いは何ですか?
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み] FlaskのビューからJSONレスポンスを返す
-
[解決済み] HTTP GETリクエストの最大長
-
[解決済み] CSSを使用してSVG画像の色を変更する方法(jQuery SVG image replacement)とは?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jquery 3.0 url.indexOfエラー
-
[解決済み] セレクトした要素の外側のHTMLを取得する
-
[解決済み] jQuery UIダイアログのクローズボタンを削除するには?
-
[解決済み] 複数のクラスを削除する(jQuery)
-
[解決済み] WebKit の event.layerX と event.layerY に関する問題
-
[解決済み] jQueryを使用してCSSのdisplay noneまたはblockプロパティを変更するにはどうすればよいですか?
-
[解決済み] CSSを使用してSVG画像の色を変更する方法(jQuery SVG image replacement)とは?
-
[解決済み] jQueryを使ってロールオーバー時に画像ソースを変更する
-
[解決済み] jQueryで、ある要素を他の要素に対して相対的に配置するには?
-
[解決済み] Jqueryのコードはヘッダーとフッターのどちらに入れるべきですか?