Jquery Ajax调用适用于谷歌Chrome,但不适用于Firefox

时间:2013-04-23 15:21:47

标签: jquery jsonp

嗨伙计们, 我正在使用jquery进行一些测试,尤其是ajax调用。

$('#jsonpbtn').click(function() {
        $('#text').html('AJAX Call executing......');
        $.ajax({
            url : 'http://zip.elevenbasetwo.com/v2/US/10010',
            type : 'GET',
            success : function(data) {
                console.log(data.city);
                $('#jsonparea').html(data.city);
                $('#text').html('Ajax Call ended');
            },
            error : function(xhr, status) {
                alert(status);
            },

        });


    });

json回复是{city:“New York City”,州:“纽约”,国家:“US”}

使用谷歌浏览器一切功能都很好,实际上是$('#jsonparea')。html(data.city)在div区域写纽约市。用firefox我有一些问题,实际上div区域没有写,调用alert(data.city)我有未定义的值。

1 个答案:

答案 0 :(得分:1)

为ajax选项提供dataType,以确保jQuery正确检测dataType。

$('#jsonpbtn').click(function() {
    $('#text').html('AJAX Call executing......');
    $.ajax({
        url : 'http://zip.elevenbasetwo.com/v2/US/10010',
        type : 'GET',
        dataType: "json", // <---- HERE
        success : function(data) {
            console.log(data.city);
            $('#jsonparea').html(data.city);
            $('#text').html('Ajax Call ended');
        },
        error : function(xhr, status) {
            alert(status);
        },

    });

});

现在,如果您的json与上面发布的完全相同,您将得到一个parseError,因为它不是有效的JSON,但我怀疑它实际上是有效的,因为它在chrome中有效。