3

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

<form> or <isindex>.

如何使用标准库模块(例如 cgi)从服务器端 python 脚本中检索这些参数?

非常感谢

编辑:
@codeape:谢谢,但这不是只适用于提交的表格吗?就我而言,没有提交任何表单,只是一个异步请求。
使用您的脚本,如果未提交任何表单,则 len(f.keys()) 将返回 0!我可能可以将请求重新转换为表单提交,但是有更好的方法吗?

4

3 回答 3

5

您使用 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))
于 2009-01-15T08:19:29.577 回答
0

codeape 已经回答了这个问题。仅作记录,请理解如何发出 HTTP 请求是完全正交的——服务器得到的是一个 HTTP 请求,句号。

于 2009-01-15T14:40:54.580 回答
0

@codeape@bruno desthuilliers

实际上, cgi.FieldStorage() 检索参数。我之前得到的输出显然是由于我在请求正文中将参数作为字符串(JSON.stringify() 对象)传递——而不是作为键值对。
谢谢

于 2009-01-15T18:59:49.847 回答