2012-05-18 2 views
1

Я думал, что этот вопрос будет тривиальным, но я просто не могу найти ответ. Веб-сайт (другое происхождение, без контроля над ним) предоставляет некоторые файлы JSON. Я хочу, чтобы некоторые переменные моего скрипта захватывали содержимое этих файлов. Меня не волнует, делается ли это синхронно или нет. Как вы пойдете?Загрузка внешнего файла JSON в качестве переменной javascript

+1

Вы можете использовать jsonp? http://en.wikipedia.org/wiki/JSONP или jQuery образом http://api.jquery.com/jQuery.ajax/ – benqus

+0

нет чистого пути? – Cystack

+0

Насколько я знаю, для браузера нет ни одного. Из JavaScript corse. – benqus

ответ

1

использование JSONP состоит из использования своего адреса, с параметрами, и добавить файл сценарий на страницу

www.example.com/process?value=1 & обратного вызов = Func

добавьте скрипт на свою страницу.

var url = "www.example.com/process?value=1&callback=Func"; 
var script = document.createElement('script'); 
script.type= ' text/javascript'; 
script.src = url; 
document.getElementsByTagName("body")[0].appendChild(script); 

Теперь вы можете использовать функцию обратного вызова или получить доступ к переменным, которые были добавлены из этого сценария.

UPDATE

В конце вашего JSONP сценария вы можете вызвать ваш обратный вызов функции Ex: PHP

<?php 
if (isset($_GET['callback'])) { 
    echo $_GET['callback']."();"; 
    // Func(); // will call your function and use your variables. 
} 
+0

Спасибо ... JSONP - это так ... И теперь, если я размещаю его на своем сервере, какой будет фрагмент? – Cystack

+0

См. Мое обновление, которое вы можете назвать функцией в конце. – Ibu

+0

Это означает, что у меня есть контроль над сервером «example.com» ... и я этого не делаю! – Cystack

1

Если удаленный хост не предоставляет JSONP или CORS, то вы будете необходимо разместить серверный компонент в своем собственном домене, который извлекает JSON для вас и обслуживает его локально.