2012-08-16 115 views
3

我一直在研究這個問題,我找不到滿足我的答案。移動應用上的同源策略

我很清楚它們適用於標準Web瀏覽器中的網站的相同原產地政策。當我開始開發一個使用本地webview並通過jQuery的.load方法加載網站內容的移動應用程序時,我的問題就出現了。通常在標準的Web瀏覽器中,我會得到一個XHR加載錯誤。

那麼,關於原生應用程序和跨越原點策略的規則是什麼?

+1

據我所知,該設備充當服務器,並可以訪問來自「任何」URL的內容。如果您使用phonegap,則必須將您的域添加到它的白名單(或通配符) – 2012-08-16 15:49:34

+0

我有在xcode和eclipse中設置的訪問源,所以我知道需要在web視圖中訪問這些網站。你有任何文件嗎? – HjalmarCarlson 2012-08-16 16:01:41

回答

3

機器人伍茲肯定是在正確的軌道上。在處理本地應用程序時,您從某種意義上說是從file://發出請求,而不是從https://發出請求。由於您沒有通過HTTP協議發出請求,因此相同的規則不適用。從本地移動應用發出請求時,您應該向任何域發出請求,而不會有任何問題。

您只需要將域名添加到PhoneGap/Cordova的白名單中,如果您將整個頁面替換爲webview中的正常內容(通常不會發生這種情況)(通常您只需要從數據塊中請求數據你的服務器,而不是做一個window.location更改)。

+0

你說得對,但是如果服務是控制源並且不允許file:// schema?沒有辦法從請求中刪除原點嗎? – 2017-08-18 14:41:23

+0

@MichaelBurger你可能想在這個問題上開一個新的問題。聽起來背後有更多的細節可以幫助人們給你比評論更好的答案。 – Joshua 2017-08-18 14:50:25

+0

我已經做到了,也許你能幫忙嗎? https://stackoverflow.com/questions/45758914/cordova-or-phonegap-http-requests-and-same-origin-policy-problems – 2017-08-18 15:10:27