Как получить объект json в ответе ajax, используя локальный файл .json и jquery? - PullRequest
2 голосов
/ 26 мая 2011

Используя запрос jquery ajax, как это

$.ajax({
url: 'mydata.json',
type: 'get',
error: function(data){
},
success: function(data){
  data=jQuery.parseJSON(data);
  //do something with data              
    }
});

Он работает отлично, за исключением случаев, когда я реализую его на сервере с URL-адресом сервера, который внутренне генерирует объект ответа json и возвращает его. тогда мне не нужен jQuery.parseJSON (данные). Есть ли способ, где я могу использовать локальный файл JSON и получить ответ в качестве объекта JSON?

Ответы [ 4 ]

3 голосов
/ 26 января 2013
$.ajax({
url: 'mydata.json',
type: 'get',
dataType: 'json',
error: function(data){
},
success: function(data){
  //do something with data              
    }
});

Указание dataType: 'json' указывает jQuery ожидать данные JSON и автоматически их анализировать.

0 голосов
/ 29 сентября 2013
$.getJSON('mydata.json').done(function(response) {
    console.log("Success");
}).fail(function() {
    console.log("Error");
});
0 голосов
/ 26 мая 2011

Это известная проблема, что success() обратный вызов не сработает на локальном jQuery.ajax.Вместо этого используйте complete(), если вы собираетесь запустить скрипт локально.Также из-за этой проблемы, вы не должны использовать jQuery.getJSON для работы (потому что функция будет срабатывать только в случае успеха.)

0 голосов
/ 26 мая 2011

Я бы порекомендовал проверить, были ли возвращенные данные уже преобразованы в объект JSON.Если это так, то нет причин для его анализа.

    $.ajax({ 
      url: 'mydata.json', 
      type: 'get', 
      error: function(data){ }, 
      success: function(data){ 
        console.log(data); //check to see if jQuery has already converted the response to a JSON object
        //data=jQuery.parseJSON(data); //do something with data
      }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...