JQuery $.getJSON загрузить локальный файл JSON не работает

Моя проблема очень проста, у меня есть файл с именем new.json, и я пытаюсь использовать JQuery для загрузки и отображения данных. Я писал код JavaScript:

$.getJSON("new.json", function(data){
        // I have placed alert here previously and realized it doesn't go into here
        $.each(data.streetCity, function(i,s){
            alert(s);
        });
    });
}

и данные в new.json выглядят так:

{"streetCity":
    {
        "1":"Abergement-Clemenciat",
        "2":"Abergement-de-Varey",
        "3":"Amareins"
    }
};

3 ответа

Решение

Если вы используете Chrome. Потому что Chrome не позволяет xmlhttprequest запрашивать локальный файл. Так что jquery не может загрузить ваш new.json

можете добавить

--allow-доступ к файлам, из-файлов

к команде запуска Chrome. Это может позволить xmlhttprequest загрузить локальный ресурс

Если вы используете jQuery 1.5+, вы можете связать обработчик ошибок с вызовом, чтобы увидеть, что происходит:

$.getJSON("new.json", function(data){
        // I have placed alert here previously and realized it doesn't go into here
        $.each(data.streetCity, function(i,s){
            alert(s);
        });
    }).error(function(jqXhr, textStatus, error) {
                alert("ERROR: " + textStatus + ", " + error);
    });

new.json, вероятно, находится в другом пути, чем вызывающая страница. Кроме того, если ваши фрагменты точны, вам не нужна последняя фигурная скобка в сценарии или последняя точка с запятой в json.

Ваша проблема это ';' (точка с запятой) в файле JSON. Ответ JSON не нуждается в точке с запятой. Уберите, что ваш пример должен работать нормально!

Другие вопросы по тегам