Проблемы с чтением данных JSON с помощью JQuery - PullRequest
0 голосов
/ 04 августа 2011

Я уверен, что это глупый недосмотр, но я не могу понять, как заставить работать функцию jQuery 'getJSON'.Для целей тестирования у меня есть каталог, настроенный следующим образом:

test.html
js/
  jquery-1.6.2.min.js
  test.js
ajax/
  test.json

и в <head> из test.html у меня есть строки

<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="js/test.js"></script>

В качестве первого тестафункция getJSON, test.js выглядит следующим образом:

$(document).ready(function() {
    $.getJSON('ajax/test.json', function(data) {
        alert('Success!');
    });
}

Однако при загрузке файла test.html ничего не происходит.У меня такое чувство, что проблема заключается в спецификации пути 'ajax / test.json', но я не уверен, почему.

РЕДАКТИРОВАТЬ: Моя ошибка в фигурной скобке, это было на самом деле хорошо в коде, который я только чтоMIS-копия-вставили.Я открыл Chrome Developer Tools и теперь вижу ошибку XMLHttpRequest с объяснением: «Нулевой источник не разрешен Access-Control-Allow-Origin».

РЕДАКТИРОВАТЬ 2: Ну, это раздражает .. похоже, что это Chrome Issue .Отлично работает на Safari.В качестве обходного пути вы можете запустить python -m SimpleHTTPServer в базовом каталоге и получить доступ к странице по адресу localhost: 8000 / test.html, в этом случае Chrome работает нормально.

Ответы [ 3 ]

3 голосов
/ 04 августа 2011

Вам необходимо правильно закрыть скобки с помощью функции обратного вызова getJSON и функции ready:

$(document).ready(function() {
    $.getJSON('ajax/test.json', function(data) {
        alert('Success!');
    });
});
1 голос
/ 04 августа 2011

ваш код:

$.getJSON('ajax/test.json', function(data) {
   alert('Success!');
); // you missed a curly brace here. that may be a problem

ПРАВИЛЬНЫЙ КОД:

$.getJSON('ajax/test.json', function(data) {
        alert('Success!');
});
0 голосов
/ 04 августа 2011

Похоже, вы пытаетесь запустить это непосредственно из файловой системы. Сделайте страницы доступными по HTTP (установив веб-сервер) и используйте их вместо этого.

Локальные веб-страницы имеют множество правил безопасности, отличных от веб-страниц HTTP.

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