1

我已经编写了 $.ajax 函数来进行 API 调用。但结果仅显示在 chrome 浏览器上。API 调用的结果不会显示在 firefox 浏览器上。此外,ajax 调用在 IE 浏览器中根本不起作用。任何人都可以请告知为什么会出现这个问题。

以下是我使用的代码:

var seriesurl = "http://t2json.tgoservices.com/818746/PrinterManufacturers/21/PrinterSeries";

$.ajax({
    cache: false,
    url: seriesurl
}).done(function (data, textStatus, jqXHR) {
    $.each(data, function (i, item) {
        var items = item.PrinterSeries.Items;

        for (var a = 0; a < items.length; a++) {
            var id;

            $("#content1").html('<a class="manufacturer" onclick="getprinter(' + items[a].Id + ',' + n + ');" id="' + items[a].Id + '" style="cursor:pointer;" >' + items[a].Name + '</a>');
        }
    });
}).fail(function (jqXHR, textStatus) {
    $('#status').html(textStatus);
    $('#content').html('(failed)');
});
4

1 回答 1

2

我认为问题源于未在初始 ajax 请求中定义数据类型。

if(!window.console) console = {log:function(){}};
function getData(){
var seriesurl = "http://t2json.tgoservices.com/818746/PrinterManufacturers/21/PrinterSeries";
$.get(seriesurl,function(data){ 
    console.log(data);

    var items = data.T2Json.PrinterSeries.Items;
    console.log(items);

    for(var a = 0; a < items.length; a++) {
        $("#content1").append('<a class="manufacturer" onclick="getprinter('+items[a].Id+');" id="'+items[a].Id+'" style="cursor:pointer;" >'+ items[a].Name + '</a><br>');
    }

},'json'); //--dataType definition (json, jsonp, html, xml, etc...)
}

请注意,我稍微修改了您的代码。您生成的锚标记中有一个“n”变量未在代码片段中定义,因此我删除了该示例。

如果您更喜欢使用 ajax 速记,您只需添加 dataType:json 设置。

于 2013-05-03T11:42:02.053 回答