1

API 呼び出しを行う $.ajax 関数を作成しました。ただし、結果は chrome ブラウザでのみ表示されます。API 呼び出しの結果が Firefox ブラウザに表示されません。また、IE ブラウザーでは ajax 呼び出しがまったく機能しません。この問題が発生する理由を教えてください。

以下は私が使用したコードです:

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 リクエストで 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 設定を追加するだけです。

于 2013-05-03T11:42:02.053 に答える