11
回答
求助,ajax跨域访问问题 phoneGap
使用ajax访问数据,但却连不通。使用chrome总是XMLHttpRequest cannot load;firefox 7好了,有个200,却拿不到返回的数据。

$.ajax({
url: "http://www.baidu.com/s",
data: "wd=123",
xhrFields: {
withCredentials: true
},//这句有没有都一样的效果
success: function()
{
alert("success");
}
}); 
想在phoneGap中用js写个应用,但是ajax拿不数据,请问高手是如何处理这个问题的,在phoneGap里获取服务器的数据(json)
举报
共有11个答案 最后回答: 5年前
phonegap没有跨域访问的限制,你把程序直接装到手机或仿真器中运行就可以。
--- 共有 4 条评论 ---
MUTEX回复 @PanFrey : something like this: $.ajax({ "type": "POST", "url": url, "timeout": 10000, "async": async, "success": successCallback, "error": errorCallback, }); 6年前 回复
PanFreyPhoneGap中使用jQueryMobile,$.post()函数不能跨域POST数据,请问你是如何解决的或者我哪里有问题吗? 6年前 回复
MUTEX@魔力猫 : PhoneGap 被墙了的 FAQ专门提到了这一点。我给你拷贝下来,贴在下面。 7年前 回复
魔力猫说没有限制的请给出整个的例子,我也被这个问题纠缠了很久。就是无法ajax访问。 7年前 回复
Q. I want to create an application for phonegap to access externally deployed web services via AJAX. How can i resolve the issue with the
cross-domain security policy of XmlHttpRequest?
A. The cross-domain security policy does not affect PhoneGap applications. Since the html files are called by webkit with the file:// protocol, the security policy does not apply.
(in Android,you may grant android.permission.INTERNET to your app by edit the AndroidManifest.xml)

我现在倒是基本能跨域了,但是这是建立在用juqery mobile上的。而且在模拟器里面不稳定。单独使用jquery仍然无法跨域。

--- 共有 1 条评论 ---
PanFrey猫猫,你是如何解决的?我现在正被这个问题困扰着! 6年前 回复

引用来自“PanFrey”的答案

楼主,你问题解决了吗?
juqery mobile 解决的。jsonp这东西还是不太习惯。

  $.ajax({
            type : "GET",
            url : "http://localhost:52309/APIMobile/Android.aspx?AjaxType=GetTask&UserID=Adminsys&jsoncallback=?",
            dataType : "jsonp",
            jsonp: 'jsoncallback',
            success : function(Json)
            {
                alert(Json.VoteID);
                alert(Json.VoteName);
                return true;
            }
        });

            }

引用来自“北方狼”的答案

  $.ajax({
            type : "GET",
            url : "http://localhost:52309/APIMobile/Android.aspx?AjaxType=GetTask&UserID=Adminsys&jsoncallback=?",
            dataType : "jsonp",
            jsonp: 'jsoncallback',
            success : function(Json)
            {
                alert(Json.VoteID);
                alert(Json.VoteName);
                return true;
            }
        });

            }

这样写,在浏览器下运行正常,在安卓模拟器下不行提示:07-13 05:29:28.703: E/Web Console(337): SyntaxError: Parse error at undefined:1

--- 共有 1 条评论 ---
atearsanandroid设备上不能用localhost 直接用IP或域名 6年前 回复
顶部