当我对django应用程序执行Http DELETE请求时.它直接返回301(永久移动)响应,并将我重定向到相同网址的GET请求.我猜Http PUT请求会像DELETE请求一样返回301.有没有办法用django处理DELETE请求?
Udi*_*Udi 47
重定向是由APPEND_SLASH设置引起的:
APPEND_SLASH
默认值:True
设置为True时,如果请求URL与URLconf中的任何模式都不匹配,并且不以斜杠结尾,则会向相同的URL发出HTTP重定向,并附加斜杠.请注意,重定向可能导致POST请求中提交的任何数据丢失.
确保您的服务器和客户端与尾部斜杠一致.
如果您的项目根本不需要尾部斜杠(即,它是一个没有尾部斜杠的api),您可以禁用它.否则,请确保您的urlconf接受没有尾部斜杠的路径.
我在使用AngularJs和Django REST时遇到了这个问题。
Django Rest正在重定向客户端,以便使用尾部斜杠请求URL,而AngularJS' $resource确保其URL上没有尾部破折号。在本期中对此进行了描述
在同一链接上,您将看到使用更灵活的$http服务而不是的建议$resource。但是...我真的很想使用$resource(更少的代码)。
因此解决方案很简单,因为Django REST团队最近对此做了说明:
router = DefaultRouter(trailing_slash=False)
Run Code Online (Sandbox Code Playgroud)
http://django-rest-framework.org/api-guide/routers.html
(因为我想使用AngularJS和Django REST记录一些陷阱,所以我将其添加到我的博客中)
| 归档时间: |
|
| 查看次数: |
6769 次 |
| 最近记录: |