私はDjangoアプリケーションに対してHttp DELETEリクエストをします。 301(Moved permanantly)というレスポンスを直接返し、同じURLのGETリクエストにリダイレクトします。私は、Http PUT要求がDELETE要求のように301を返すと推測しています。 djangoでDELETEリクエストを処理する方法はありますか?Http djangoへの削除リクエストは301を返します(永久に移動しました)
答えて
リダイレクトがAPPEND_SLASH設定によって引き起こされる:
APPEND_SLASH
デフォルト:リクエストURL は、パターンのいずれにも一致しない場合は、Trueに設定真
URLconfで、 スラッシュで終了しない場合は、HTTPリダイレクトを に発行し、同じURLにスラッシュ追加されました。 リダイレクトにより、 が失われたというPOST要求で送信された データが失われる可能性があります。
サーバーとクライアントが末尾にスラッシュを含むことを確認してください。
プロジェクトでスラッシュがまったく必要ない場合(つまり、スラッシュが付いていないapiの場合)は、無効にすることができます。それ以外の場合は、urlconfが末尾にスラッシュを付けずにパスを受け入れるようにしてください。
このオプションは、angularJS 1.30.beta6の$ resourceコンポーネントに対して設定されています。https://github.com/angular/angular.js/commit/3878be52f6d95fca4c386d4a5523f3c8fcb04270 – AlexandruC
おかげで、あなたは私の日を救ってくれます! –
AngularJsとDjango RESTを使用しているときにこの問題が発生しました。
Django Restがクライアントのリダイレクトを行い、AngularJS '$resource
のURLに末尾にダッシュがないことを確認しながら、末尾にスラッシュが付いたURLを要求しました。これはこの説明書に記載されていますissue
$resource
の代わりに、より柔軟な$http
サービスを使用するよう提案されます。しかし...私は本当に$resource
(少ないコード)を使いたいと思っていました。私は維持したいと思いますので、(私は私のblogにこれに追加した
router = DefaultRouter(trailing_slash=False)
http://django-rest-framework.org/api-guide/routers.html
:
だから、解決策は、DjangoのRESTチーム以来、些細だったが、このrecentlyを占めていますAngularJS & Django RESTを使用したいくつかの問題のログ
- 1. Eureka on Cloudfoundry RestTemplateが301を永久に移動しました
- 2. Wordpress 301 Jquery.postリクエストで永久に応答しました
- 3. Msxml2.XMLHTTP.6.0とHTTP 301永久にリダイレクトされました
- 4. Gitlab CI成果物永久に移動したエラー301?
- 5. 301と永続的にsocket.httpに移動しました
- 6. ノードHTTPリクエストは永久にハングします
- 7. exec.Command(...)に移動します。wait()が永久にハングします
- 8. 証明書が永久に移動しました
- 9. 永久SEOセーフ301 HTTPからHTTPSへのリダイレクトエイリアスの有効化
- 10. nginx 301永久リダイレクト
- 11. NSURLCredentialを永久に削除しますか?
- 12. SearchView AppBarを永久に上に移動しますか?
- 13. ボタンをクリックした後にタイマを永久に削除する
- 14. ディレクトリをgitから永久に削除します
- 15. リポジトリからファイルを永久に削除します。git
- 16. JHipster - URLから永久に#HASHを削除しています
- 17. レコードを永久に移動して並べ替えます
- 18. アンドロイドスタジオの永久レンダリング警告を削除します
- 19. htaccess 301サブドメインが移動しました
- 20. パースアンドロイドは、永久に移動したエラーで画像をダウンロードできません
- 21. Powershellは、永久に移動した(リダイレクトされた)リソースの新しいURLを決定します。
- 22. データベースにjsonを投稿する際に問題があります - 301は永久にsymfonyに移動しました
- 23. は現代のLinuxでroot特権を永久に削除します
- 24. django移行地獄は、テーブルを削除しました。
- 25. OSXがノード永久プロセスを起動しました
- 26. ListViewからアイテムを永久に削除
- 27. httpサイトへのコメントをhttpsに移動しました。
- 28. 削除されたDjango移行を復旧しました
- 29. ストレージアカウントは永久に削除されません
- 30. インストールテストは永久に点火します
DELETEのURLに末尾のスラッシュがありませんか? –
関連するビューがまったく読み込まれているかどうか確認できますか?おそらく、ログがロードされていることを確認するためにログをビューの中に入れてください。また、これはあなたのWebサーバーであり、Djangoではなく、リクエストをリダイレクトすることができますか? –
それは問題でした。私のクライアントはbackbone.jsで、backbone.jsはモデルURLに後続のスラッシュをつけません。だから、urls.pyでは、後ろにスラッシュを入れずに別のurl設定を追加していました。 – yilmazhuseyin