phonegap jQuery .ajax跨域请求在浏览器中有效,在Android SDK中失败

发布于 2021-01-31 17:41:36

我已经花了三天时间了,并且我已经尝试了几乎所有替代代码,并且都无济于事。

这是从沼泽标准jQuery示例中获取的代码:

    $.ajax({
            url: "http://api.wunderground.com/api/4213a68e7f20c998/geolookup/conditions/forecast/q/Australia/Noarlunga.json",
            dataType: "jsonp",
            success: function(parsed_json) {
               alert("YEP!");
               var loc = parsed_json['response'];
               var weather = "Location: " + parsed_json.location.city + "<br />";
               weather += "Wind: " + parsed_json.current_observation.wind_dir + " ";
               weather += parsed_json.current_observation.wind_mph + "-" + parsed_json.current_observation.wind_gust_mph + " knts";
               $("#info").html(weather);
           }    
    });

这是很多人建议的配置(什么都不做)

    $( document ).bind( "mobileinit", function() {
        // Make your jQuery Mobile framework configuration changes here!
        $.mobile.allowCrossDomainPages = true;
        $.mobile.ajaxEnabled = true;
        $.mobile.pushStateEnabled = false;
        $.mobile.allowCrossDomainPages = true;  
    });

另外,我还有:

  • 向AndroidManifest.xml文件添加了

  • 在同一目标上的浏览器中测试了json请求URL(工作正常)

  • 在FireFox / Chrome中测试了页面(工作正常)

  • 尝试通过3G在我的Galaxy s2上运行该应用程序(UI正常运行,但ajax请求仍然失败)

请注意,这不是完整的代码,而只是位于包装在标准.ready()函数中的标准phonegap设备就绪侦听器事件函数中。

这在我的手机上失败了,并且SDK似乎指示了phonegap / Eclipse问题,而不是连接/权限问题。

我正在尝试使用Android SDK部署到Android 2.3 AVD。我还没有尝试部署到Android 4 AVD。

如果有人知道问题出在哪里,我会很乐意的,因为我已经没有足够的建议去尝试了!

关注者
0
被浏览
92
1 个回答
  • 面试哥
    面试哥 2021-01-31
    为面试而生,有面试问题,就找面试哥。

    $( document ).bind( "mobileinit", function()
    

    $.support.cors = true.
    

    :)



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看