【问题标题】:uWSGI AJAX, reading a requestuWSGI AJAX,读取请求
【发布时间】:2013-12-12 07:02:47
【问题描述】:

您好,我正在尝试从 nginx 后面的 wsgi 服务器获取 ajax 响应(如果重要的话)。我认为我在读取请求时遇到问题,因为变量 request_body_size 似乎始终为 0;当我想查看“测试字符串”时,我在警报框中得到“无请求”的返回值。

我找不到很多关于这个的文档或这个工作的例子,所以如果有人知道如何解决这个问题,我将不胜感激。

我在 WSGI 脚本中有这个 python 代码:

import os, sys
from cgi import parse_qs

def application(environ, start_response):

    try:
        request_body_size = int(environ.get('CONTENT_LENGTH', 0))
    except (ValueError):
        request_body_size = 0

    context = {}
    if request_body_size != 0:
        request_body = environ['wsgi.input'].read(request_body_size)
        output = parse_qs(request_body)
    else:
        output = "No request" 


    status = '200 OK'
    response_headers = [('Content-type', 'text/html'),('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return [output]

这是发出请求的js(jquery):

function test_request()
{
    var test_string = "test string";
    $.ajax({
        type: 'GET',
        url:"/ajax", 
        data: test_string, 
        success:function(result){alert(result)}}
    );
}

【问题讨论】:

  • 为什么不使用框架,例如。 G。烧瓶?
  • 主要是因为我对它的工作原理感兴趣,但我也不认为我需要这个功能。

标签: python ajax nginx wsgi uwsgi


【解决方案1】:

ajax() 方法在方法为 GET 时将“数据”值转换为 QUERY_STRING。使用 POST 应该可以解决问题(或者您可以阅读 environ['QUERY_STRING'])

【讨论】:

猜你喜欢
  • 2021-03-26
  • 2016-07-31
  • 2015-12-29
  • 2013-09-23
  • 2016-02-05
  • 2022-08-09
  • 2018-05-23
  • 2012-09-02
  • 1970-01-01
相关资源
最近更新 更多