nginx不会将POST数据转发给uwsgi - [UPDATE] flask不会读取帖子数据

时间:2013-04-08 10:08:29

标签: post flask

我有一个非常奇怪的问题,一个非常简单的设置。

该安装程序部署了nginx Web服务器,用于提供一些静态页面。它还有一个用于处理POST请求的后端uwsgi deamon。

我的nginx位置配置如下

#For handling POST Request
location  = / {
#              index index.html;
#               autoindex on;

                uwsgi_pass unix:/tmp/uwsgi.sock;
                include uwsgi_params;
}

#For handling static page requests under /custpages
location ^(/custpages).*(\.html) {

                autoindex off;

 }

当我部署此服务器并从浏览器发出post请求时,nginx不会将POST数据发送到uwsgi。

但有趣的是,当我使用python请求发出一个独立的POST请求时,它会按预期工作。

我想知道,与独立请求相比,基于浏览器的POST请求有什么问题,因为两者都是通过nginx。

任何指针?

提前致谢

[UPDATE]

这似乎与uwsgi有关。 对于从python请求发送的POST,它返回POST数据,因为我可以在uwsgi日志中看到响应字节。

但是对于从浏览器发送的请求,响应字节为零。

在这两种情况下,uwsgi都会从nginx接收到正确的POST数据,所以这似乎与uwsgi有关

[更新2]

进一步更新。这个问题与nginx或uwsgi无关。

我在我的服务器后端应用程序中使用python和flask微框架,问题是这样的。

我使用当前请求上下文对象来读取POST数据,如下所示 data_string = request.data

现在,事实证明,当从浏览器发出POST时,request.data为空 当从python请求发出POST时,request.data包含正确的POST数据。

所以,任何一个烧瓶都在那里,你帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

此问题是由于flask框架中的固有行为导致POST数据在当前请求上下文对象中不会显示。

有关详细信息和解决方案,请参阅以下问题。

Flask not getting any data from jQuery request data