django-rest-framework-POST请求返回“不允许使用方法\“ GET \”。

时间:2018-07-14 21:27:58

标签: django django-rest-framework django-rest-auth

我已按照安装教程设置了django-rest-auth,但我无法使用登录API端点。当我发送带有正确信息的POST请求时,响应“不允许使用方法“ GET””,我收到405状态错误。

但是,当我导航到实际URL并从在线表单发布它时,它可以正常工作并返回令牌。

帮助?!

邮递员示例:

https://i.imgur.com/574rERm.png

Axios示例:

axios.post('http://----.com/api/accounts/login/', data: {'username': ---, 'password': ---})
.then(function (response) {console.log(response);})
.catch(function (response) {console.log(response);})

更新:

这似乎是Heroku或Gunicorn的问题?该网站使用Gunicorn部署在Heroku上,但是所有POST请求都作为GET请求接收。

1 个答案:

答案 0 :(得分:2)

对于遇到这种奇怪的POST请求现象的人来说,它神秘地变成了GET请求...

我在Heroku上使用Django + DRF。问题是如此简单,以至于我想同时大笑和哭泣。

Heroku将请求重定向到http://example.comhttp://www.example.com,并且此重定向涉及GET请求。结果,POST请求将作为GET请求接收,而没有最初出现的任何标头或正文。

所有这些工作和挫折感仅是因为缺少“ www”。希望这对将来有帮助!

https://stackoverflow.com/a/23688973/8407856