これは私の URLs.py です:
url(r'^api-auth/', include('rest_framework.urls',
namespace='rest_framework')),
ホームページに、ユーザーがユーザー名とパスワードを入力できるフォームがあります。送信ボタンがクリックされると、AngularJS は POST リクエストをユーザー オブジェクト (ユーザー名とパスワード) と共に「api-auth/login/」に送信します。
$http.post("/api-auth/login/", self.loginuser)
.error(function(data, status, headers, config) {
console.log(data);
});
ユーザーが間違ったユーザー名とパスワード (ユーザー名とパスワードが存在しないか一致しない) を送信すると、Django Rest Framework は 204 No Content、404 または 401 Unauthorized ではなく 200 OK を返します (この投稿では、401 と表示されます)。は、返される正しいステータス コードです:ユーザーが間違ったユーザー名/パスワードでログインしようとしたが、正しい形式でログインしようとした場合に返される適切な HTTP ステータス コードは何ですか? )。
ここによると: http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.htmlのセクション 9.5 POST には、「この場合、200 (OK) または 204 (No Content) のいずれかが適切な応答です。結果を説明するエンティティが応答に含まれているかどうかによって異なります。」
エラーを処理し、データが存在する場合はデータをログに記録します (JS で console.log(data) を実行しました)。結果。
では、なぜ DjangoRestFramework は 204 No Content (または 404 または 401、私がリンクした他の SO 投稿によると返されるべきもの) ではなく 200 を返すのでしょうか?