在python中检索XMLHttpRequest参数

在python中检索XMLHttpRequest参数,python,ajax,cgi,Python,Ajax,Cgi,客户端代码通过ajax请求向python cgi脚本提交对象(在POST请求正文中)或查询字符串(如果使用GET方法)。请注意,对象/查询字符串参数不是来自 <form> or <isindex>. 或。 如何使用标准库模块(例如cgi)从服务器端python脚本中检索这些参数 非常感谢 编辑: @codeape:谢谢,但这不是只对提交的表单有效吗?在我的例子中,没有提交表单,只是一个异步请求。使用脚本,如果没有提交表单,len(f.keys())将返回0!我可能可

客户端代码通过ajax请求向python cgi脚本提交对象(在POST请求正文中)或查询字符串(如果使用GET方法)。请注意,对象/查询字符串参数不是来自

<form> or <isindex>.
或。
如何使用标准库模块(例如cgi)从服务器端python脚本中检索这些参数

非常感谢 编辑:

@codeape:谢谢,但这不是只对提交的表单有效吗?在我的例子中,没有提交表单,只是一个异步请求。
使用脚本,如果没有提交表单,len(f.keys())将返回0!我可能可以将请求改写为表单提交,但是有更好的方法吗?

您可以使用cgi.FieldStorage类。CGI脚本示例:

#! /usr/bin/python

import cgi
from os import environ
import cgitb
cgitb.enable()

print "Content-type: text/plain"
print
print "REQUEST_METHOD:", environ["REQUEST_METHOD"]
print "Values:"
f = cgi.FieldStorage()
for k in f.keys():
    print "%s: %s" % (k, f.getfirst(k))

codeape已经回答了这个问题。请注意,HTTP请求的发出方式完全是正交的-服务器得到的是HTTP请求,句号。

@codeape,@bruno desthuillers: 实际上,cgi.FieldStorage()检索参数。我之前得到的输出显然是由于我在请求体中以字符串(JSON.stringify()对象)的形式传递参数,而不是以键值对的形式传递参数。
谢谢