json解析不适用于mozilla firefox浏览器

时间:2013-05-03 10:48:54

标签: jquery jsonp

我编写了$ .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)');
});

1 个答案:

答案 0 :(得分:2)

我认为问题源于未在初始ajax请求中定义dataType。

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设置。