2011-04-26 51 views
0

目前我正在爲Android和iOS系統使用phonegap構建應用程序。本質上,它將是一個網站,但由於我需要通過ajax(同源策略)進行跨域請求,我遇到了一些困難。我想知道是否更好地讓我的服務器上的網站,允許PHP,然後使用手機中的包裝/框架來模擬網站?這將如何工作?手機使用Phonegap/Converting網站

幫助表示讚賞

回答

4

你不應該有這個問題。 PhoneGap應用程序作爲本地文件://頁面加載到設備上,而跨域安全策略不適用於它們。

從PhoneGap的常見問題解答:

問:我想創建的PhoneGap通過AJAX訪問外部部署的Web服務的應用程序。我該如何解決XmlHttpRequest的跨域安全策略 的問題?

A.跨域安全策略不影響PhoneGap應用程序。由於html文件是由webkit使用file://協議調用的,因此安全策略不適用。 (在Android中,您可以通過編輯AndroidManifest.xml將android.permission.INTERNET授予您的應用程序)

+0

哥們你救了我一些時間,謝謝 – 2011-04-30 05:03:55

0

如果您有跨域請求的問題則考慮使用類似JSONP作爲數據交換格式。你在哪裏請求數據?

+0

對,我知道jsonp可以使用。但是,在我自己的服務器上編寫Web應用程序,使用PHP,然後使用包裝或框架在應用程序中顯示它會更容易嗎? – 2011-04-27 04:27:17

+0

這不會有問題,但是你不需要PhoneGap。它只是一個普通的網站......你可以將它的啓動器圖標放在主屏幕上,讓它看起來像一個本地應用程序。 – 2011-05-01 00:34:34

0

如果我理解正確,您希望爲跨域服務創建一個PHP代理,以便您可以使用phonegap與您的移動應用程序訪問它?這是一個非常普遍的事情,它在Flash中做了很多工作,以避免跨域限制。

對於我的一個演示,我需要從Flash訪問Google圖片。爲此,我在我的服務器上創建了一個名爲imageproxy.php的非常簡單的PHP代理。這是完整的代碼:

<?php 
readfile($_POST['url']); 
?> 

是的,這就是它的。因此,就你的情況而言,如果你在你的服務器上使用這個PHP代理,你會發送這個代理你的目標URL作爲post變量,代理髮出請求並通過readfile()返回響應。

+0

沒錯,但我無法做到這一點,因爲他們不允許你的應用程序中使用PHP?我將如何訪問遠程php腳本?使用JSONP? – 2011-04-27 15:11:42