jQuery Ajax each() 不工作

jQuery Ajax each() Not Working

我是 jQuery 的新手。我尝试使用 Ajax 获取一些数据,我想循环它并将其插入 result div.

数据未显示在resultdiv.

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();
    }
});

演示:http://jsfiddle.net/w7jhaqz1/

我做错了吗?

还有一个,如何访问individual id?假设我只想为 id 1 显示 status,该怎么做?

您需要将 dataType: 'json' 添加到您的 $.ajax 呼叫中。您正在访问的 URL - 有趣的是它支持 CORS - 没有发送正确的 Content-type header.

那 header 告诉 jQuery 如何处理数据。它没有发送正确的 header,因此 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();
    }
});