1

在过去的两天半里,我一直在解决这个问题……

使用 phonegap 构建适用于 iPhone 和 Android 的应用程序。跨域 ajax 可以在我的浏览器和 iPhone 上运行。它不适用于 Android。

我一直没有使用 jQueryMobile,只是 jQuery,直到我在某处读到我应该使用移动版本来获得跨域以在 android 上工作。所以我改变了项目以适应 jMobile。我真的需要使用 JqueryMobile 才能让跨域 ajax 工作吗?如果可能的话,我宁愿不使用它。

尝试更改 $.mobile.allowCrossDomainPages=true; 之类的东西 $.support.cors = 真;无济于事。我不知所措。请帮帮我

这是我的ajax代码

$.ajax({
    url: 'URL',
    type: 'GET',
    contentType: "application/json",
    dataType: 'jsonp',
    jsonp: 'jsoncallback',
    success: function(response){
        console.log("inside ajax");
        $.each(response, function(i,item){
            var category = "<div class='icon-text'><a class='ajaxify' href='pages/onlineRecipe.html' onclick='$(setOnlineID("+item.id+"))' >"
                +"<p><img alt='Image-alt' width='64' class='wrap-around' id='img"+item.id+"' />"
                +"<strong>"+item.title+"</strong>"
                +"<br/>"+item.desc+"</p></a></div>";

            $('#categories').append(category);
            var img = "#img" + item.id;
            $(img).attr('src', "data:image/png;base64,"+item.image);
            //other bindings
            App.ajaxLinkify($("a.ajaxify"));
            App.addTouchEvents($(".page"));
        });
    },
    error: function(xhs, status, error){
        //output.text('Ha producido un error cargando el dato. Por favor, intèntalo de nuevo.');
        console.log("Ajax not working");
    }
});
4

3 回答 3

0

我的建议是检查<access origin="http://www.example.com" />res /xml/config.xml (cordova 2.3)

于 2013-01-14T14:15:54.127 回答
0

尝试添加这个jQuery.support.cors = true;

哦,还有另一个提示,以防它缓存以前的错误调用,将其添加到您的 ajax

cache: false,
于 2013-01-14T14:38:42.957 回答
0

需要将此添加到相应的php文件中: header("Access-Control-Allow-Origin: *");

于 2014-08-07T08:44:37.643 回答