Использование getScript для анализа файла JSON из CrossDomain - PullRequest
0 голосов
/ 22 июля 2011

У меня есть хороший рабочий локальный скрипт:

$.getJSON("jsonfile.js",function(item) {    
  $.each(item.terra_nova_feed, function(i,item) {
    // functions and varibles//
  });
});

, который отлично работает локально.Когда файл JSON перемещается в другой домен .. ничего.Я знаю, что я должен использовать getScript для извлечения файла JSON.Однако как я могу получить эти данные в существующий скрипт?

Ответы [ 3 ]

2 голосов
/ 22 июля 2011

Попробуйте функцию $.ajax() и используйте параметр crossDomain:true.Он по существу использует JSONP (дополненный JSON), который оборачивает данные в обратный вызов.

$.ajax({
    url: "http://www.otherdomain.com/jsonfile.js",
    crossDomain:true,
    type:'get',
    dataType:'json',
    success: function(data) {    
        $.each(data.terra_nova_feed, function(i,data) {
            // functions and varibles//
        });
    }
});
1 голос
/ 22 июля 2011

короткий ответ: ты действительно не можешь этого сделать. При этом, если у вас есть контроль над тем, что возвращает другой домен, вы можете использовать что-то под названием JSON-P. С JSON-P вы в основном вызываете междоменный файл скрипта - скрипт нужно будет возвращать таким образом, чтобы он вызывал метод на вашей странице. jQuery позаботится о подключении на вызывающей странице, но вам все равно нужно убедиться, что сервер со сценарием правильно отправляет сообщения.

0 голосов
/ 22 июля 2011

Проблема в том, что $ .getJson () обычно не работает с jsonp (это означает, что он не работает с кросс-доменом, если только в некоторых особых случаях, таких как явная поддержка со стороны сервера, передающего его), но в вашем случае я думаю, что вы следует использовать $ .ajax () и установить для параметра crossDomain значение true.

...