AJAX & Python: текст ответа из сценария Python является объектом - PullRequest
0 голосов
/ 01 марта 2011

Отредактировано глупая ошибка

Я использую AJAX для доступа к скрипту Python, получаю текст из скрипта Python и отображаю его на моей веб-странице.

Моя проблема: заключается в том, что текст ответа является "неопределенным", тогда как это должно быть "bbbb"

Я не понимаю, где япошло не так?Это мой скрипт на python неверен (неправильно обрабатывает AJAX (? Запросы?)), Это мой javascript или мой WSGI-сервер, который я сделал?* Мой скрипт на питоне:

import cgitb; cgitb.enable()
import cgi
import os


input_data   = cgi.FieldStorage()

print "bbbb"
#print "you said: " + input_data['email']

Ответы [ 3 ]

1 голос
/ 01 марта 2011

Вы получаете неопределенный, потому что вы только что сделали сообщение и не ждали ответа, чтобы вернуться. Ваш alert вызов должен быть внутри изменения статуса, где у вас есть return xmlhttp.responseText; прямо сейчас. Помните, что функции Javascript (за исключением иронии * 1003) не блокируются.

0 голосов
/ 01 марта 2011

Проблема заключается в следующем:

var output   = document.getElementById( "bb" );
...
alert( output );
...
<p id="bb"> abcdef </p>

Выходная переменная указывает на элемент DOM с идентификатором "bb", который является тегом абзаца HTML.

Я думаю, что вы, вероятно, хотели напечатать response.

0 голосов
/ 01 марта 2011

Возможно, вам следует использовать response, а не output в этой функции.output ссылается на элемент с id="bb", поэтому innerHTML фактически правильно устанавливается:

   function onTest()
    {
        var response = post( "cgi/aaa.py", "email=blah" );
        var output   = document.getElementById( "bb" );

        output.innerHTML = response;
        alert( response );
    }
...