【发布时间】:2011-11-18 10:28:25
【问题描述】:
Ajax 对服务器页面的调用如何在移动应用程序中完美运行(使用 PhoneGap)。但是,当我从 PC 浏览器中的普通 HTML 页面运行相同的 Ajax 调用时,它不起作用。我想问题是跨域的。但是,它如何在移动应用中运行良好。
使用JSONP 它在电脑浏览器和移动应用程序(使用PhoneGap)中运行良好。但在没有datatype="jsonp" 的移动应用中也可以正常工作。
【问题讨论】:
Ajax 对服务器页面的调用如何在移动应用程序中完美运行(使用 PhoneGap)。但是,当我从 PC 浏览器中的普通 HTML 页面运行相同的 Ajax 调用时,它不起作用。我想问题是跨域的。但是,它如何在移动应用中运行良好。
使用JSONP 它在电脑浏览器和移动应用程序(使用PhoneGap)中运行良好。但在没有datatype="jsonp" 的移动应用中也可以正常工作。
【问题讨论】:
来自PhoneGap FAQ:
问。我想为 phonegap 创建一个应用程序,以通过 AJAX 访问外部部署的 Web 服务。我该如何解决这个问题 XmlHttpRequest的跨域安全策略?
A.跨域安全策略不影响PhoneGap 应用程序。由于 html 文件由 webkit 使用 file:// 协议调用,因此安全策略不适用。 (在 Android 中,您可以通过编辑 AndroidManifest.xml 将 android.permission.INTERNET 授予您的应用程序)
【讨论】:
移动应用程序(PhoneGap、Adobe AIR、Titanium、Native 等)对 XHR 请求没有桌面浏览器的同源限制。他们可以进行任何他们想要的跨域调用。这就是为什么它在手机上运行良好而不是在桌面上运行良好的原因。
JSONP 在两者中都能正常工作,因为它不使用 XHR。它使用
【讨论】:
我猜所有基于 WebView 的视图都没有关于跨域 XHR 请求的限制规则。 跨域请求的另一种方式是服务器端桥接。
【讨论】:
您可以使用 iqouta 在 phonegap 中进行 ajax 调用搜索 iqouta 易于使用!!
【讨论】: