Jquery getJSON Не работает кросс-сайт - PullRequest
1 голос
/ 14 июня 2010

У меня есть фрагмент JavaScript, который захватывает данные JSON. При локальном исполнении все работает нормально. Однако, когда я пытаюсь получить доступ к нему с другого сайта, это не работает.

Вот сценарий.

$(function(){
    var aT = new AjaxTest();
    aT.getJson();
});

var AjaxTest = function()
{
    this.ajaxUrl = "http://mydeveloperpage.com/sandbox/ajax_json_test/client_reciever.php";

    this.getJson = function(){
        $.getJSON(this.ajaxUrl, function(data){
            $.each(data, function(i, piece){
                alert(piece);
            });
        });
    }
}

Вы можете найти копию того же файла в "http://mydeveloperpage.com/sandbox/ajax_json_test/".

Любая помощь будет принята с благодарностью.

Спасибо!

1 Ответ

3 голосов
/ 14 июня 2010

Из документации :

  • Из-за ограничений безопасности браузера большинство запросов "Ajax" подчиняются одной и той же политике происхождения; запрос не может успешно получить данные из другого домена, субдомена или протокола.

  • На запросы сценариев и JSONP не распространяются одинаковые ограничения политики происхождения.

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

...