2015-05-05 130 views
26

我最近升級到科爾多瓦5.0(和科爾多瓦的Android 4.0),從那時起,我的應用程序不能訪問外部資源。 (和之前一樣),我仍然在AndroidManifest.xml中有<uses-permission android:name="android.permission.INTERNET" />(和以前一樣),但是ajax調用在沒有任何解釋的情況下被拒絕(「textStatus」參數是「error」, 「errorThrown」參數爲null,xhr.state()返回「rejected」)。Ajax請求升級到科爾多瓦5.0後失敗+ [email protected]

我驗證過沒有請求被擊中服務器,所以會出現它正在由Android停止,但日誌不給任何解釋爲什麼...

我可以訪問該網址在Android的瀏覽器罰款問題,而不是從應用程序。

ajax請求是通過調用Backbone.sync()Backbone.js,最終調用jquery的$ .ajax()來完成的。我沒有改變任何關於如何打電話......只是升級了科爾多瓦。

是網絡請求有新的要求/設置,在科爾多瓦5.0,或任何我需要從以前的版本科爾多瓦做不同?

有誰知道一個方法可以讓我得到更多的信息,爲什麼Android和/或科爾多瓦被拒絕請求?

回答

47

我跟蹤的罪魁禍首下降到[email protected]科爾多瓦平臺。它現在需要新的cordova-plugin-whitelist插件。

它可以與

cordova plugin add cordova-plugin-whitelist 

或安裝通過添加

<plugin name="cordova-plugin-whitelist" spec="1" /> 

到config.xml中,然後將其代替舊的配置有

<allow-navigation href="*" /> 

<access origin="*" />標籤。

當這樣的問題出現時,日誌不會再吐出「白名單拒絕」的錯誤信息(這會爲我節省大量的時間),但也許會遲一些。

+3

非常感謝。保存了我的一天。 –

+0

只有當我重新創建了模擬器 –

+0

謝謝。像魅力一樣工作。在** Cordova 5.3.3 **上測試,無需更改任何代碼。 –

2

在科爾多瓦6。X您需要刪除內置白名單插件並重新安裝新版本的插件。

cordova plugin remove cordova-plugin-whitelist 

,並重新安裝該插件

cordova plugin add cordova-plugin-whitelist 

,然後更換<allow-navigation href="*" />到config.xml文件,而不是<access origin="*" /> 在我的情況下,這招奏效。

+0

完美。非常感謝 – Anjum

0

,如果你使用的是科爾多瓦6.XX u需要使用卸載內置科爾多瓦 - 插件白名單

科爾多瓦插件刪除科爾多瓦 - 插件白名單

,並通過重新安裝

cordova plugin add cordova-plugin-whitelist

即使問題仍然存在重新啓動命令提示符並嘗試它。

相關問題