目前我正在为Android和iOS系统使用phonegap构建应用程序。从本质上讲,它将是一个网站,但由于我需要通过ajax(相同的原始策略)进行跨域请求,我遇到了一些困难。我想知道是否更好地在我自己的服务器上建立网站,允许PHP,然后在phonegap中使用包装/框架来模拟网站?这会怎么样?
帮助表示赞赏
答案 0 :(得分:4)
你根本不应该遇到这个问题。 PhoneGap应用程序作为本地file://页面加载到设备上,跨域安全策略不适用于它们。
来自PhoneGap常见问题解答:
Q值。我想为phonegap创建一个应用程序,以通过AJAX访问外部部署的Web服务。我怎样才能解决这个问题 XmlHttpRequest的跨域安全策略?
一个。跨域安全策略不会影响PhoneGap应用程序。由于webkit使用file:// protocol调用html文件,因此安全策略不适用。 (在Android中,您可以通过编辑AndroidManifest.xml将android.permission.INTERNET授予您的应用程序)
答案 1 :(得分:0)
如果您遇到跨域请求问题,请考虑使用jsonp等数据交换格式。你在哪里要求数据?
答案 2 :(得分:0)
如果我理解正确,您希望为跨域服务创建PHP代理,以便您可以使用phonegap通过移动应用程序访问它?这是一个非常常见的事情,它在Flash中也做了很多,以及超越跨域限制。
对于我的一个演示,我需要从Flash访问Google图片。为此,我在服务器上创建了一个名为imageproxy.php的非常简单的PHP代理。这是完整的代码:
<?php
readfile($_POST['url']);
?>
是的,就是这样。因此,在您的情况下,如果您在服务器上使用此PHP代理,则将此代理作为post变量发送到目标URL,代理发出请求并通过readfile()返回响应。