Почему этот файл .json не анализируется jquery? - PullRequest
0 голосов
/ 08 марта 2011

Я загрузил эти данные в файлы облачных хранилищ:при доступе через браузер вы получаете запрос на загрузку.Файл имеет ожидаемое содержимое.

Когда я пытаюсь получить к нему доступ с помощью jquery 1.4.2 с помощью этого фрагмента

<script>
$(document).ready(function($) {

    url = 'http://c192531.r31.cf1.rackcdn.com/test.json';
    $.getJSON(url, function (data) {
        alert( data );
    });

});
</script>

, он оповещает null.

Что я сделал не так?

Ответы [ 4 ]

5 голосов
/ 08 марта 2011

Размещена ли страница, содержащая этот сценарий, в том же домене (http://c192531.r31.cf1.rackcdn.com)? Если нет, возможно, вы используете такое же ограничение политики происхождения , которое запрещает отправку междоменных запросов AJAX.

Возможный обходной путь - использовать JSONP , но вам нужно будет заставить удаленный URL-адрес возвращать строку JSONP или, если вы не можете изменить его, настроить скрипт на стороне сервера, который будет действовать как мост между вашим доменом и удаленный домен, а затем отправьте запрос AJAX в этот сценарий моста.

1 голос
/ 08 марта 2011

Вы не можете запросить файл JSON, который не находится в том же домене, что и страница. Это называется та же политика происхождения . Вы можете использовать JSONP , хотя.

1 голос
/ 08 марта 2011

Это связано с восстановлением безопасности.Способ обойти это - использовать jsonp вместо просто json.

В jquery вы можете использовать jsonp, установив тип контента в jsonp.Но вам нужно изменить файл JSON.

1 голос
/ 08 марта 2011

Вы работаете с той же политикой происхождения . Вы можете загрузить JSON напрямую, потому что вы не пытаетесь сделать это из контекста другого сайта (т.е. вы просто обращаетесь к URL напрямую). Но из запроса ajax http://site.a пытается загрузить данные из http://site.b.

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