私はDjango JWT Authを試していましたが、あるタイプの投稿にはうまく反応しますが、別のタイプにはうまく反応しません。私はcURLのPOSTを使用している場合Django JWT Auth、なぜ1つのリクエストがうまくいくのですか?
は、基本的には、readme.mdに言及、すべてが計画に応じて行く:
$ curl -X POST -H "Content-Type: application/json" -d '{"username":"admin","password":"abc123"}' http://localhost:8000/api-token-auth/
ができますが、私は同じ情報を持つcURLのPOSTの別のタイプを使用する場合、それはdoesnのトンの仕事:
$ curl -d 'username=admin&password=abc123' http://localhost:8000/api-token-auth/
私は、「コンテンツタイプ」はdiferentであることを知っているが、要求は同じように受け入れられるべきではありませんが、彼らは両方ともうまく投稿を形成していますか?
関連するもう1つの質問。 'application/json'を使用してDjangoにPOSTを実行すると、DjangoのPOSTリクエストパーサーは、デフォルトでrequest.POST辞書にJSONパラメータを設定しません。正しい? (ブラウザ 'application/x-www-form-urlencoded'のように投稿すると、これはデフォルトで魔法のように実行されます) – LPS
あなたの質問は分かりませんが、探しているデータが 'リクエストで表示されます。ポストは、request.bodyにある必要があります。出典:https://docs.djangoproject.com/ja/1.9/ref/request-response/ – nathanshimp
はい、それはrequest.bodyに表示されます。私が言っていることは、デフォルトでDjangoはrequest.POST辞書にJSONパラメータ(Content-Type:applcation/json)をロードしないということです。 Content-Type見出しがapplication/x-www-form-urlencodedである典型的なPOSTの場合と同じように、本体データは 'username = some&password = some'の形式で提供されます。私は正しいですか? – LPS