jQuery $ .get загружает относительные данные, но не выполняет обратный вызов - PullRequest
0 голосов
/ 07 марта 2011

Следующее не является междоменной проблемой, но пахнет как единое целое.

Итак, вот мои настройки (это быстро делает меня серым):

У меня есть файл index.html, который загружает плоский файл с именем config.json, который находится рядом с index.html. Я использовал как $ (document) .ready (), так и window.addEventListener ('load' ...), чтобы сделать это:

$(document).ready(function(){
    $.get('config.json', function(data){
        alert('asd');
    })
});

Предупреждение почти никогда не срабатывает. Это происходит в Chrome 9 и Firefox 3.6 и FF4. Не пробовал другие браузеры. Я смотрю в Firebug и консоли разработчика под вкладкой сети, и я вижу загрузку config.json. У него есть соответствующие заголовки (application / json). Таким образом, данные загружаются, но функция обратного вызова не срабатывает.

Однако в Firefox, если я обновляюсь в режиме быстрого двойного паттерна (как сердцебиение), то очень редко мой сигнал срабатывает. Я могу заставить Firefox сделать это только в версии 3.6, так что я предполагаю, что движок js немного медленнее, чем v4 и Chrome.

В довершение всего это становится незнакомым. Если я задаю полный путь к config.json в том же домене, он не загружается. Если я установлю config.path на http://localhost/config.json и получу доступ к сайту с http://local.mac.com/, мое оповещение ПОЖАРО! Если я переключаю домены и получаю доступ с локального хоста и использую http://local.mac.com (или abcdef.com) для config.json, то ТАКЖЕ ТАКЖЕ ВЫЖИМАЕТ.

У меня есть домен настройки "local.mac.com" в / etc / hosts (mac), поэтому я могу тестировать сайты с этим вместо localhost. Я также попробовал другой домен в / etc / hosts на "abcdef.com" и получил те же результаты.

Там должно быть чем-то, чего я просто скучаю, потому что мое время почти 2 часа ночи, но я сбит с толку. Может кто-нибудь сказать мне, что, черт возьми, происходит?

1 Ответ

0 голосов
/ 07 марта 2011

Вы пробовали вызов $ .getJSON ??

$.getJSON('config.json', null, function(data) { alert(data);  }); 
...