django-rest-framework - POST 请求 returns "Method \"GET\" 不允许。"

django-rest-framework - POST Request returns "Method \"GET\" not allowed."

我已经按照安装教程设置了 django-rest-auth,但我无法使用登录 API 端点。当我发送带有正确信息的 POST 请求时,我收到 405 状态错误作为响应 "Method "GET" not allowed."

但是,当我从在线表单导航到实际的 URL 和 POST 时,它工作正常并且 returns 一个令牌。

求助?!

邮递员示例:

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 请求接收。

任何遇到这种 POST 请求神秘地变成 GET 请求的奇怪现象的人...

我在 Heroku 上使用 Django + DRF。问题简单到让我哭笑不得

Heroku 将请求重定向到 http://example.com to http://www.example.com,并且此重定向涉及 GET 请求。因此,POST 请求作为 GET 请求接收,没有任何最初存在的 headers 或 body。

所有的工作和挫折都只是为了失踪 'www'。希望这对以后body有帮助!

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

在我的例子中,我忽略了 https:// 前缀,所以 Nginx 将 backend.foo.com 重定向到 https://backend.foo.com,并且在此期间,方法 POST 正在更改为 GET,所以我刚刚添加了 https:// 前缀并且有效