Не могу понять, как сделать XMLHttpRequest для Google App Engine - PullRequest
4 голосов
/ 01 марта 2011

Я пытаюсь сделать простой POST из JavaScript (расширение Google Chrome) в мое приложение Google. Я вижу, что HTTP POST действительно отправляется на сервер GAE, но я не могу понять, как передать простойтекстовую строку, и используйте ее в приложении Google.

Цель: отправить строку из javascript с помощью xmlhttpRequest, показать эту строку на веб-странице google-app.

Вот код JavaScript:

  function onRequest(request, sender, sendResponse) {
    var url = request;
    var xhr = new XMLHttpRequest();
    xhr.open("POST", "http://myapp.appspot.com");
    xhr.send(url);
    // Return nothing to let the connection be cleaned up.
    sendResponse({});
  };

Воткак я работаю с сообщением на стороне сервера:

def post(self):
    url1 = str(self.request.get('url1'))
    self.response.headers['Content-Type'] = 'text/html'
    self.response.out.write('<p>URL is: %s</p>' % url1)

Когда я смотрю на ответ POST, я вижу

<p>URL is: </p>

, где находится URL-адрес var, который был отправлен?

Ответы [ 2 ]

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

Я получил его на работу, по-другому. Вместо XMLHttpRequest я использовал jquery:

    $.post("http://myapp.appspot.com", { url1: request});

и все заработало:)

Кстати, я также обнаружил, что если вы хотите, чтобы html расширения chrome использовал jquery, вам нужно сделать

<script src="jquery-1.5.1.js"></script>
<script> your code here </script>

(я уверен, что это просто для вас, ребята, но свежо для меня:)

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

Содержимое, которое вы включаете с xhr.send(), будет в self.request.body, если оно не указано в формате CGI.Для вашего простого теста вы также можете попробовать xhr.send("url1=" + request).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...