2012-09-29 4 views
10

私はユーザー名を設定するためにAJAX呼び出しを行っています。ユーザー名が既に取得されている場合は、どのHTTPコードを返す必要がありますか?名前のために返されるHTTPエラーコードは何ですか?

+0

[この電子メールは既に登録されています]のHTTP応答コードは?](http://stackoverflow.com/questions/9269040/which-http-response-code-for-this-email-is-すでに登録済みです) –

答えて

-2

すでに取得済みの名前のHTTPコードはありません。 List of HTTP Status Codesをご覧ください。

ユーザー名を設定するためにAJAX呼び出しを使用している場合は、HTMLでエラーを表示しないのはなぜですか。これは、4XXコードを見るのではなく、実際のエラーが何を意味するのかを訪問者が知るように、ユーザーフレンドリーです。

+1

jqueryで4xxコードをキャッチし、ユーザーフレンドリーなエラーメッセージを表示しようとしていました。 – Ryan

+0

あなたはhttpステータスコードで物事をキャッチすることに限定されません。代わりにエラーメッセージをキャッチすることができます。 [jQuery API on $ .ajax](http://api.jquery.com/jQuery.ajax/)を確認してください。 'success'ハンドラが助けになるでしょう。APIの例をチェックしてください。 – rationalboss

+0

以下にコメントしたとおり、200は成功のためのものです。要求を完了するエラーは、エラーステータスコードを保証します。私は、Ryanがリクエストが失敗したときに200を返すようになっていないことを願っています。これはまったく悪い考えです。 –

7

私は422 Unprocessable Entityを選択します。ロットのレール開発者はこれをすべての検証エラーに使用します。

はい、エラー状態を評価し、javascriptでエラーメッセージを表示するのは完全に適切です。これは、APIに対して同じアクションを使用している場合に特に便利です。次に、あなたのajaxリクエストは、他の開発者に公開するのと同じAPIにアクセスしています。

16

エラーメッセージで409 Conflict.otherwise 200を使用できます。

1

ここにルールはありません。あなた次第です。しかし、@rationalbossが述べたように、HTTPリクエストが成功したのでメッセージとともに200を返すのは理にかなっていますが、エラーはリクエストとは無関係です。

エラーは、リクエスト自体が間違った動詞や欠落しているパラメータなど、何らかの形で正しくないことを意味します。

ここでの質問は、ソフトウェアクライアントと人間の両方からの解釈についてですが、HTTPエラーがない場合はエラーコードから離れるほうがよい場合があります。

+1

私は同意しませんが、あなたが言ったように、それは意見の問題です。私には、要求を完了する際にエラーが発生した場合、エラーコードが必要です。私は、何かが間違っていたことを知るために、クライアントが応答の詳細をチェックしないようにします。私がOKに戻ると、成功したことを意味します。要求を完了するすべてのエラーは、実際のサーバー例外でない限り、400カテゴリに該当する必要があります。ただし、500にはなりますが、決して200にはなりません。 –

関連する問題