2015-01-02 4 views
0

Я новичок в jQuery. Я пытаюсь получить некоторые данные с помощью Ajax, и я хочу его закодировать и вставить в result div.jQuery Ajax each() Не работает

Данные не отображаются в полевых условиях result.

var url = 'http://node.globalresearch.my/mybanjir/ws.BencanaJKR.php?function=getBencanaJKR&output=json&state_code=06'; 

var result_div = $('#result'); 

$.ajax({ 
    url: url, 
    type: 'GET', 
    success: function (d) { 
     $.each(d, function (i, val) { 
     result_div.append(val.id); 
     }); 
    }, 
    beforeSend: function() { 
     $("#loading").show(); 
    }, 
    complete: function() { 
     $("#loading").hide(); 
    } 
}); 

DEMO: http://jsfiddle.net/w7jhaqz1/

Могу ли я делать какую-либо ошибку?

Ещё один, как получить доступ к отдельным id? Скажем, я хочу показать только status за id 1, как это сделать?

+0

@Alnitak Данные не отображаются в результате div. –

+0

Когда я пытаюсь открыть http://node.globalresearch.my/mybanjir/ws.BencanaJKR.php?function=getBencanaJKR&output=json&state_code=06 (который является адресом, который вы пытаетесь получить в своем запросе AJAX) в моем браузере все Я получаю пустой массив. Поэтому я не совсем уверен, что именно вы ожидаете получить от пустого массива. Вы можете подумать о вызове сценария на стороне сервера, который возвращает некоторые данные. –

+0

@DarinDimitrov Я получаю массив: http://i.imgur.com/N5Itpdq.jpg –

ответ

1

Чтобы позвонить $.ajax, необходимо добавить dataType: 'json'. URL-адрес, к которому вы обращаетесь, - который, с интересом поддерживает CORS, не отправляет правильный заголовок Content-type.

Этот заголовок сообщает jQuery, как обрабатывать данные. Он не отправляет правильный заголовок, поэтому jQuery не знает, чтобы разобрать его как JSON. Добавление dataType: 'json' сообщает jQuery предположить, что это JSON и проанализировать его.

$.ajax({ 
    url: url, 
    type: 'GET', 
    dataType: 'json', 
    success: function (d) { 
     $.each(d, function (i, val) { 
      result_div.append(val.id); 
     }); 
    }, 
    beforeSend: function() { 
     $("#loading").show(); 
    }, 
    complete: function() { 
     $("#loading").hide(); 
    } 
}); 
+0

Я добавил dataType, как вы сказали. Результат по-прежнему «Загрузка ...» –

+0

Этот цикл не используется: http://jsfiddle.net/w7jhaqz1/1/ –

+0

@zulhfreelancer: отлично работает для меня: http://jsfiddle.net/w7jhaqz1/2/UPDATE: я добавил «
» после каждого идентификатора, чтобы было легче увидеть: http://jsfiddle.net/w7jhaqz1/3/ –