Проблемы с получением удаленного контента с помощью Google App Engine - PullRequest
0 голосов
/ 11 января 2011

Вот код на стороне клиента. Он работает внутри гаджетов Google

  var params = {};
  params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.JSON;
  var url = "http://invplatformtest.appspot.com/getrecent/";
  gadgets.io.makeRequest(url, response, params);

Функция ответа:

function response(obj)
  {
  var r = obj.data;
  alert(r['name']);
  }

на стороне сервера код Python, отправляющий JSON:

class GetRecent(webapp.RequestHandler):
    def get(self):
        self.response.out.write({'name':'geocities'}) #i know this is where the problem is so how do i encode json in GAE?

, который просто должен отправить обратно кодированную строку Json но когда я запускаю это, javascript выдает следующую ошибку:

r is null
   alert(r['name']);

Если я получаю только текстовое содержимое и мой сервер отправляет текстовый текст, все работает нормально. Я получаю эту проблему, только когда пытаюсь отправить JSON. Где именно проблема? Я неправильно кодирую JSON на AppEngine? Я попытался использовать библиотеку JSON, но похоже, что это не поддерживается.

Где именно проблема? (

1 Ответ

1 голос
/ 11 января 2011

Проблема в том, что вы вообще не кодируете JSON - вы просто передаете словарь Python в self.request.out.write и ожидаете, что он узнает, что с ним делать. Импортируйте django.utils.simplejson и вызовите simplejson.dumps() в словаре, чтобы преобразовать его в JSON.

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