Phonegap jQuery ajax调用失败

时间:2013-12-06 11:04:42

标签: jquery ajax json cordova

我知道有很多关于此的问题,但我还没有找到一个实际上有帮助的问题。

我正在使用Phonegap制作一个应用程序,该应用程序利用内部REST API来检索新闻项目。我正在使用jQuery 1.10.2(以及jQuery mobile 1.3.2和mustache.js)。当我在本地xampp服务器上测试时,一切正常,它只在编译并部署到设备时停止工作。

以下是我当前的$.ajax来电(在deviceReady上调用):

$.support.cors = true;
$.mobile.allowCrossDomainPages = true;

// Load news items.
$.mobile.loading("show");
$.ajax({
    type: "GET",
    cache: false,
    url: "http://mynewsapi.com/items",
    dataType: "jsonp",
    timeout: 10000,  // 10 seconds
    error: function(xhr, status, exception){
        $("#msg").text("Error: "+status+" - "+exception);
        $.mobile.loading("hide");
    },
    success: function(data){
        $("#msg").text("Got JSONP response");
        console.debug(data);
        for (var i = 0; i < data.items.length; i++) {
            data.items[i].image = data.imageHost+data.items[i].image;
            html = Mustache.render('<li><a href="#article?id={{id}}" data-transition="slidefade"><img src="{{image}}" style="top:auto"><h2>{{title}}</h2></a></li>', data.items[i]);
            $("#newsList").append(html);
            $("#newsList").listview("refresh");
        };
        $.mobile.loading("hide");
    }
});
  • 我尝试过设置$.support.cors$.mobile.allowCrossDomainPages
  • 在我的config.xml中,我有<access origin="*" />
  • 我最初使用的是普通的JSON,但最近一直在尝试使用JSONP来查看它是否会更好(nope)
  • 来自服务器的响应包括Access-Control-Allow-Origin: *标题
  • 在设备的浏览器中访问API网址正常

使用JSONP时,我收到错误parsererror - Error: jQueryxxx_xxx was not called,使用普通JSON时,我会得到error - Unknown

我已经没事了。为什么这不起作用?

0 个答案:

没有答案