【问题标题】:nginx does not forward POST data to uwsgi -- [UPDATE] flask does not read post datanginx 不将 POST 数据转发到 uwsgi -- [UPDATE] flask 不读取 post 数据
【发布时间】:2013-03-30 09:03:36
【问题描述】:

我有一个非常特殊的问题,设置非常简单。

该设置部署了 nginx Web 服务器,用于提供一些静态页面。它还有一个用于处理 POST 请求的后端 uwsgi 守护进程。

我的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。

任何指针?

提前致谢

[更新]

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

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

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

[更新 2]

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

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

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

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

所以,任何烧瓶书呆子,请帮我解决这个问题

【问题讨论】:

  • 问题出在 jquery ajax 调用上。看完这篇文章就知道了stackoverflow.com/questions/11839855/…
  • 如果您找到了解决方案,您也可以随时发布您对该问题的答案,所以也许其他人也会发现它也很有用(您也可以在一段时间后接受自己的答案,所以我们都知道这一点已解决)。

标签: post flask


【解决方案1】:

这个问题是由于烧瓶框架中的固有行为导致 POST 数据未出现在当前请求上下文对象中。

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

Flask not getting any data from jQuery request data

【讨论】:

    猜你喜欢
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 2015-12-18
    • 2023-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多