получение параметров XMLHttpRequest в python - PullRequest
3 голосов
/ 15 января 2009

Код на стороне клиента передает объект (в теле запроса POST) или строку запроса (если используется метод GET) через ajax-запрос к сценарию Python CGI. Обратите внимание, что параметры объекта / строки запроса , а не , взятые из

<form> or <isindex>.

Как я могу получить эти параметры из скрипта Python на стороне сервера, используя стандартные библиотечные модули (например, cgi)?

Большое спасибо

EDIT:
@ codeape : Спасибо, но разве это не сработает только для отправленных форм ? В моем случае форма не отправляется, только асинхронный запрос.
Используя ваш скрипт, len (f.keys ()) возвращает 0, если форма не отправлена! Я, вероятно, могу переписать запрос как отправку формы, но есть ли лучший способ?

Ответы [ 3 ]

5 голосов
/ 15 января 2009

Вы используете класс 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))
0 голосов
/ 15 января 2009

@ codeape , @ bruno desthuilliers :

Действительно, cgi.FieldStorage () извлекает параметры. Вывод, который я получал ранее, по-видимому, был связан с передачей параметров в виде строки (объект JSON.stringify ()) в теле запроса, а не в виде пар ключ-значение. Спасибо

0 голосов
/ 15 января 2009

codeape уже ответил на это. Просто для записи, пожалуйста, поймите, что то, как отправляется HTTP-запрос, полностью ортогонально - сервер получает HTTP-запрос, точка.

...