$ .getJSON无法在Android移动设备上运行

时间:2016-03-18 13:17:20

标签: jquery json ajax jquery-mobile

使用本地文件JSON,我通过$.getJSON获取数据并使用jQuery mobile输出

$('body').off('tap').on('tap', 'ul li', function(event) {
    var jqxhr = $.getJSON("one.json", function(data) {
        console.log("success");
        alert(data.name + " " + data.one);
        $("#json").html(data.name + " " + data.one);
    }).done(function() {
        console.log("second success");
        $("#d1").html("second success");
    }).fail(function(jqxhr, textStatus, error) {
        var err = textStatus + ', ' + error;
        console.log("Request Failed: " + err);
        $("#d2").html("Request Failed: " + err);
    }).always(function() {
        console.log("complete");
        $("#d3").html("complete");
    });
});

这在计算机和HTC上运行良好,但在三星设备上它无法正常工作。在三星没有错误,输出空div

2 个答案:

答案 0 :(得分:1)

阅读上面的评论,我相信你的代码可能真的可以在一台设备上运气,并且可能会失败很多。

您使用的“点按”看起来无效(并且其使用会带有警告,因此有限制)。 http://api.jquerymobile.com/tap/

  

警告:请谨慎使用

     

Tap使用vclick,因此应谨慎使用   触控设备。有关详细信息,请参阅vclick API documentation

根据我的理解,在点击后,应该出现功能 - 不参考任何特定标签。请注意上面代码中第一行与下面代码之间的区别。

$('body').off('tap').on('tap', function(event) {

    var jqxhr = $.getJSON("one.json", function(data) {
        console.log("success");
        alert(data.name + " " + data.one);
        $("#json").html(data.name + " " + data.one);
    }).done(function() {
        console.log("second success");
        $("#d1").html("second success");
    }).fail(function(jqxhr, textStatus, error) {
        var err = textStatus + ', ' + error;
        console.log("Request Failed: " + err);
        $("#d2").html("Request Failed: " + err);
    }).always(function() {
        console.log("complete");
        $("#d3").html("complete");
    });
});

答案 1 :(得分:0)

if (currentapiVersion >= android.os.Build.VERSION_CODES.JELLY_BEAN){
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}