запрос getJSON не работает

У меня есть json файл с некоторыми данными для добавления в div в html-документе при нажатии кнопки:

HTML:

<div class="json"></div>
<button id="one"></button>

здесь javascript:

function one(){
    $("#one").click(function(){
        $.getJSON('one.json',function(data){
            alert("success");       
        })
        .done(function() { alert('getJSON request succeeded!'); })
        .fail(function() { alert('getJSON request failed! '); })
        .always(function() { alert('getJSON request ended!'); });
    });
}

$(document).ready(function() {
   one();
});

файл one.json находится в том же каталоге js файла. Когда я нажимаю кнопку, предупреждение "getJSON request failed"... где ошибка?

3
13 янв. '14 в 12:31
источник поделиться
5 ответов

Посмотрите, работает ли ниже код: -

 $.getJSON('/YourDirectory/one.json',function(data){
            alert("success");       
        })
2
13 янв. '14 в 12:33
источник

$.getJSON() принимает URL-адрес в качестве параметра для получения JSON, а не путь к файлу.

$.getJSON('/one.json', function (data) {... });

или же

$.getJSON('http://localhost:1234/one.json', function (data) {... });

Возьмите URL- one.json файла one.json и вставьте его в адресную строку браузера. Если браузер возвращает содержимое JSON, вы знаете, что можете использовать этот URL в вызове $.getJSON().

1
13 янв. '14 в 12:34
источник

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

  • mysite.com/index.html, он будет выглядеть на mysite.com/one.json

а также

  • mysite.com/category/index.html, он будет выглядеть на mysite.com/category/one.json

Если у вас есть современный браузер, вы можете открыть консоль разработчика, чтобы узнать, что такое точный запрос.

1
13 янв. '14 в 12:35
источник

ну, удалите обратный вызов успеха внутри метода getJSON и используйте .done .fail.. или используйте только обратный вызов успеха

 function one(){
   $("#one").click(function(){
    $.getJSON('path/to/one.json')
    .done(function() { alert('getJSON request succeeded!'); })
    .fail(function() { alert('getJSON request failed! '); })
    .always(function() { alert('getJSON request ended!'); });
   });
}

$(document).ready(function() {
  one();
 });
1
13 янв. '14 в 12:35
источник

Если вы открываете html с URL-адреса

localhost:80/project/test.html

то путь json будет

localhost:80/project/one.json

Поэтому убедитесь, что html и json находятся в одной папке.

1
13 янв. '14 в 12:34
источник

Посмотрите другие вопросы по меткам или Задайте вопрос