Ajax调用如何在移动应用程序(PhoneGap)中运行,而不是在PC浏览器中运行?

时间:2011-09-16 05:58:14

标签: jquery cordova jsonp

Ajax对服务器页面的调用如何在移动应用程序中完美运行(使用PhoneGap)。但是,当我从PC浏览器中的普通HTML页面运行相同的Ajax调用时,它无法正常工作。我想这个问题是跨域的。但是,它如何在移动应用程序中运行良好。

使用JSONP它在PC浏览器和移动应用程序(使用PhoneGap)中运行良好。但是在没有datatype="jsonp"的移动应用中也可以正常工作。

4 个答案:

答案 0 :(得分:12)

来自PhoneGap FAQ

Q值。我想为phonegap创建一个应用程序,以通过AJAX访问外部部署的Web服务。我怎样才能解决这个问题 XmlHttpRequest的跨域安全策略?

一个。跨域安全策略不会影响PhoneGap应用程序。由于webkit使用file:// protocol调用html文件,因此安全策略不适用。 (在Android中,您可以通过编辑AndroidManifest.xml将android.permission.INTERNET授予您的应用程序)

答案 1 :(得分:7)

移动应用程序(PhoneGap,Adobe AIR,Titanium,Native等)对桌面浏览器执行的XHR请求没有相同的来源限制。他们可以进行任何他们想要的跨域调用。这就是为什么它在手机上工作正常,而不是在桌面上工作。

JSONP可以正常工作,因为它不使用XHR。它使用< script>执行跨域请求。标签。因此它绕过了浏览器的同源策略。 JSONP只能在远程服务以函数形式返回数据然后立即执行时才能工作。

答案 2 :(得分:1)

我猜所有基于WebView的视图都没有关于跨域XHR请求的限制规则。 跨域请求的另一种方法是服务器端桥接。

答案 3 :(得分:0)

你可以使用iqouta在phonegap搜索iqouta进行ajax调用,方便使用!!