Django和nginx不接受PATCH请求,导致400 bad request错误

Mou*_*qch 1 python django nginx django-rest-framework

我从事 Django 项目 + django-rest-framework。在本地主机上,PATCH 请求工作得很好。但是,在服务器上,PATCH 请求不起作用。我收到400 Bad request错误。我使用 nginx 来配置 Web 服务器。

这是我的配置:

server {
    listen 80;
    server_name x.y.z.com;
    root /var/www/path-to/project;

    location / {
            error_page 404 = 404;
            proxy_pass  http://127.0.0.1:5555/;
            proxy_set_header Host $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_intercept_errors on;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我在服务器上尝试 PATCH 请求时出现此错误:

在此输入图像描述

我怎样才能让 django 接受 PATCH 请求?日志没有显示任何内容。就好像它根本没有收到请求一样。我像这样运行 django 服务器:

python manage.py runserver 5555
Run Code Online (Sandbox Code Playgroud)

小智 10

朋友,我遇到了这个问题,我在nginx中做了所有可能的设置,但问题出在我的js fetch中,尝试使用小写的patch方法,“patch”,更改为“PATCH”工作正常。

  • 天哪,我一定花了好几个小时试图弄清楚为什么只有在非本地环境中才会发生这种情况。都是因为它是大写的......令人难以置信。 (2认同)