您好我正在尝试从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)}}
);
}
答案 0 :(得分:4)
当方法为GET时,ajax()方法将'data'值转换为QUERY_STRING。使用POST应解决问题(或者您可以阅读environ ['QUERY_STRING'])