2013-04-03 3 views
-3

Я пытаюсь получить данные из URL-адреса, который возвращает данные в строке JSON.Как я могу получить строку JSON из URL?

URL: http://forums.zybez.net/pages/2007-price-guide-api?term=adamant+axe

То, что я хочу сделать, это магазин эта строка в переменной следующим образом:
вар jsonData = '[получить JSON строку из URL]';

Но я не уверен, как получить строку JSON из URL-адреса. Любая помощь будет оценена! :-)

+0

Используйте '$ .getJSON' или JSONP, если это кросс-домен. Я уверен, что это кросс-домен, поэтому вам нужно будет использовать JSONP, но сервер должен будет иметь возможность разместить JSONP – Ian

+3

. Служба, похоже, не поддерживает CORS или JSONP, поэтому короткий ответ; Вы не можете получить эти данные с клиентов, вам понадобится сценарий с серверами, который вы можете вызвать. – adeneo

+0

Если вы хотите сделать это из собственного кода JavaScript на своем собственном сайте, вы не сможете. Браузеры не позволят вам получать контент с URL-адреса с другим доменом. – Pointy

ответ

0

Функции jQuery.getJSON() дают вам легкий доступ к данным JSON, возвращаемым с сервера. http://api.jquery.com/jQuery.getJSON/

+1

Это будет работать с чем-то вроде консоли JavaScript браузера, но не с кода JavaScript на сайте с другим доменом. – Pointy

0

Это запрос X-Domain, который вы пытаетесь сделать. По умолчанию без каких-либо дополнительных усилий это запрещено - по соображениям безопасности.

Вы можете либо реализовать обратный вызов JSONP. Затем вы отправите имя обратного вызова (которое должно быть сгенерировано по каждому запросу) на сервер, которому вы хотите получать данные, и в ответ этот сервер предоставит вам функцию, которую вы могли бы вызвать для извлечения ваши данные.

Другой вариант - это сервер CORs http://enable-cors.org/server.html HTTP-сервер, на который вы запрашиваете данные, должен иметь требуемую обработку программного модуля, отправляя правильный MIME-тип и т. Д.

Тем не менее, есть еще один способ: использовать «обертку»

Вы можете настроить веб-сервер, который работает между ними. Он загрузит ваш запрос и отправит его вам. Так же, как если бы вы запрашивали данные непосредственно с этого сервера (очевидно, вы это делаете, но это не фактический сервер, предоставляющий данные).

Одним из способов реализации этого было бы использование PHP-скрипта для загрузки данных и направления их вам.

основных частей реализации образца:

  • ваш HTML файл запроса данных: processData.html (запрос данных из 127.0.0.1/ getData.phpместо? = URL)

  • php файл, служащий в качестве обертки и загружающий данные с URL (где местоположение - это ваш параметр, который вы отправляете в файл-обертку): getData.PHP

  • где ваш фактический сервер находится (URL) предоставленного файла PHP в качестве параметра расположение (убедитесь, чтобы избежать параметра URL перед отправкой его в файл PHP)

есть намного больше способов реализовать то, что вы пытаетесь достичь.

удачи!

Смежные вопросы