YUI "Get" утилита для анализа ответа JSON? - PullRequest
1 голос
/ 29 ноября 2009

На странице документации для утилиты YUI "Get" написано:

Get Utility идеально подходит для загрузки вашего собственные сценарии или CSS постепенно (ленивая загрузка) или для извлечения междоменные данные JSON из источников в которому вы полностью доверяете.

... но реальных примеров того, как это сделать, нет. Их один пример на самом деле не запрашивает документ JSON с удаленного сервера, но вместо этого документ, содержащий настоящий JavaScript вместе с данными JSON.

Меня просто интересует ответ JSON от HTTP (REST) ​​интерфейса API Карт Google. Поскольку я не могу выполнять межсайтовый скриптинг с помощью утилиты «Connect», я пытаюсь использовать утилиту «Get». Но простая вставка данных JSON на страницу, конечно, ничего не даст. Я должен назначить его переменной. Но как?

Кроме того, простая вставка данных JSON на страницу заставляет Firefox жаловаться на ошибку JavaScript. И понятно! Обычные данные JSON не будут обрабатываться как действительный JavaScript.

Есть идеи?

Ответы [ 4 ]

0 голосов
/ 16 декабря 2009

Я использовал YAHOO.lang.JSON.parse для разбора строки в json. Также метод stringify может использоваться для перехода от JSON к строке:

http://developer.yahoo.com/yui/docs/YAHOO.lang.JSON.html

0 голосов
/ 29 ноября 2009

OK. Похоже, что без интерфейса HTTP Geocoding от Google, поддерживающего JSONP, сделать это невозможно. (

0 голосов
/ 30 ноября 2009

Шон. Вы можете обнаружить, что вам нужна поддержка XDR в YUI Connection Manager -

http://developer.yahoo.com/yui/examples/connection/xdr.html (YUI 2) http://developer.yahoo.com/yui/3/examples/io/io-xdr.html (YUI 3)

Используйте диспетчер соединений (YUI 2) или IO (YUI 3) для ввода JSON, а затем используйте компонент JSON в любой кодовой строке для анализа JSON после его загрузки.

Если Google или Yahoo! имеет необходимую междоменную поддержку на соответствующих серверах, вы должны быть в бизнесе.

-Эрик

0 голосов
/ 29 ноября 2009

Обычно в этом случае проще всего вернуть javascript, который вызывает обратный вызов с помощью json. Например:

function xdCallback( json ) {
  // here I can do whatever I need with json, maybe
  SomeModule.heresTheJson( json );
  // or
  globalVar.json = json;
  // etc
}

И на стороне сервера вы возвращаете не просто JSON, а что-то вроде:

xdCallback( { json: 'goes', here: true } );

... выполнить «скрипт», когда вы получаете его через ajax-вызов, и все готово.

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