2015-09-30 44 views
0

我正在Cordova上開發移動應用程序。主代碼通過HTTP GET本地服務器進行通信,例如:Cordova:HTTP GET在Android中不起作用

$.get("http://192.168.2.6:8080/getStatus.sha", 
     {}, 
     function(data) { 
      alert ("checkIpAddress() success! Status: " + data.status); 
     }) 
     .fail(function() { 
      alert ("checkIpAddress() failed to get url \'" + url + "\'."); 
     }); 

當我運行在Mozilla Firefox瀏覽器的代碼,我得到的服務器居留制(和更多的數據)。

但是,當我在Android設備上運行Cordova程序時,出現「checkIpAddress()失敗」消息。

本地服務器支持CORS。 Crodova項目的config.xml包含以下設置:

<access origin="*" /> 
<allow-intent href="http://*/*" /> 

任何修復錯誤的建議?謝謝!

+0

在同一個wifi上? – MegaAppBear

+0

設備是否在同一網絡上?本地服務器是否有靜態分配的IP? – mkorcha

+0

是的,在同一個WiFi上。 – NaBUru38

回答

2

如果您使用的是Cordova 5,並且設備和服務器可以互相看到(在同一個WiFi網絡上),您可能必須在內容安全策略中啓用此功能。見Cordova Whitelist Plugin.你需要考慮增加一元標記

示例配置會是什麼樣子:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'"> 

根據還有什麼你的應用程序或不這樣做,你可能不需要在上述所有其他選項,儘管一些Ajax和模板框架會。上述工作適用於使用JQuery和Handlebars的Cordova 5應用程序。

+0

好吧,我將Content-Security-Policy標籤添加到main.html並放置相應的星號。謝謝! – NaBUru38

+0

如果這對您有用,請繼續並接受答案,或讓我們知道是否仍有問題。謝謝。 –

+0

「感謝您的反饋!一旦您獲得了15點聲望的總聲望,您的選票就會出現。」 對不起,我不能投票你的答案。 – NaBUru38