2015-05-28 128 views
5

如何在Android上的Ionic Framework中執行跨域http請求?如何在Android上的Ionic Framework中執行跨域http請求?

我試圖在ionic.project中設置代理,沒有幫助。以下是我的要求去做:

$http.get('http://localhost:8100/getnews/?hashcode=' + hashcode + '').then(function (resp) { 
     ... 
    }, function (err) { 
     ... 
    } 

這裏的ionic.project:

{ 
    "name": "...", 
    "app_id": "...", 
    "proxies": [ 
     { 
     "path": "/getnews", 
     "proxyUrl": "http://yukigaru.pythonanywhere.com/getnews/" 
     } 
    ] 
} 

它並不適用於Android,功能(ERR)分支總是被調用。它適用於一臺電腦的瀏覽器,不適用於另一臺電腦的瀏覽器。

Cordova 5.0.0,Ionic 1.3.20,Android 5.x.

+0

你使用phonegapp還是cordova?如果確定訪問原點設置正確,請參閱:[cross origin](http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html) – Praveen

+0

您在說哪種瀏覽器?鉻?即? –

+0

你使用的是cordova-android平臺的版本4還是舊版本?如果使用版本4,則必須確保在項目中包含cordova-plugin-whitelist插件。 – QuickFix

回答

0

我最終什麼在我的離子的應用程序做的是,我加入這其中扮演着JSON API(和我從離子應用程序調用)的PHP文件:

header('Access-Control-Allow-Origin: *'); 

所以,如果你控制API端點服務器並且能夠做出類似的改變(你沒有提到你使用的是哪個API堆棧),你應該沒問題。 如果任何人有一個更好的使用情況,請回復...

0

localhost是「本機」,這就是爲什麼它的工作機器上的服務器和其他機器不能正常工作。

更改localhost到機器的本地IP與服務器,像192.168.1.X

0

如果你試圖調用服務的原產地之外,那麼你應該在服務器端添加訪問控制接頭,其他人,而不是$ http.get你可以嘗試$ http.jsonp(我沒有嘗試這種方法)。

我希望這會幫助你。