2015-11-19 63 views
3

我在離子應用程序中有一個簡單的Web服務......它連接到遠程服務器以執行簡單任務。離子代理在離子服務器上工作,而不是在ios模擬器或設備上

代理是建立在離子這樣的:

"proxies": [{ 
    "path": "/api", 
    "proxyUrl": "http://example.com/api" 
    }] 

和通話是 「/ API」。這些在localhost瀏覽器中正確解析爲http://example.com/api(使用離子服務)。

但在Xcode中,URL解析爲:

file:///api 

我不能明確找到這樣的東西。我如何顯示我正在呼叫ios?

+0

使用細節也許我需要設置每http://blog.ionic.io/handling-cors-issues-in-ionic/端點?? – lilbiscuit

回答

0

這是預期的操作。離子CLI代理僅用於離子CLI服務或運行命令。更多這裏:http://blog.ionic.io/handling-cors-issues-in-ionic/

該文件:/// api url不會觸發Angular瀏覽器CORS pre-flight OPTIONS調用,所以你應該沒問題。

您遇到的任何其他CORS問題都將出現在服務器端。

4

我在Android設備上運行時遇到了同樣的問題,解決方法很簡單,這裏要注意的是我們用來處理CROS問題的代理,這只是與桌面瀏覽器有關的問題,所以雖然使用離子服務我們需要代理,我們不需要使用其他設備的代理。 我已經在服務中使用了以下條件來處理此問題,而無需進行任何進一步的代碼更改,同時爲任何目標平臺構建。

var APIUrl = '/myproxies'; 
if (this.platform.is('core') == true){ 
    APIUrl = '/myproxies'; 
}else{ 
    APIUrl = 'http://api.sample.com/SomeSampleAPIProvider'; 
} 
this.http.get(APIUrl+"/Json").map(res => res.json()).subscribe(
    data => {..... 

可以參考這個link知道的this.platform

+0

有關信息,'核心'不適合我。我使用'mobileweb':) –

相關問題