2016-08-04 36 views
0

我正在構建我的第一個應用程序使用離子框架。我遇到了以下問題。我在雲中託管了一個nodejs rest api。當我運行我的應用程序使用離子服務和我拿一些數據它的工作。但是,當我從我的設備(使用離子運行android)它不工作。 我已閱讀了關於cordova-plugin-whitelist的一些信息,但我擁有它並仍然無法正常工作。Ionic Rest API調用不起作用從設備

ionic.project 
{ 
"name": "myApp", 
"app_id": "", 
"proxies": [ 
    { 
    "path": "/contacts", 
    "proxyUrl": "https://myapp.herokuapp.com/contacts" 
    } 
] 
} 

在config.xml中我都這個標籤:

<access origin="*"/> 
<allow-navigation href="*" /> 

我忘了提,我試圖訪問這個其他的API https://api.chucknorris.io/jokes/random和它與它沒有任何問題。也許我的nodejs REST服務有些問題?

+0

刪除平臺,並再次添加它..!然後運行'離子運行android' –

+0

沒有工作。我認爲這種遷徙與我的服務有關,而與離子無關。 –

+0

在Chrome Borwser中測試您的應用程序時,此插件將解決此問題:Allow-Control-Allow-Origin:* –

回答

2

我通過這個同樣的問題去了,我嘗試了所有的可能性。我安裝了cordova-plugin-whitelist插件。它包括​​3210,<meta>與CSP(內容安全策略)中的設置,但即使如此我仍無法解決問題。我做了所有可能的程序,但仍然無法運作。

它在ionic serveionic run -l上工作,但它不能在設備上工作。當我放棄時,我意識到,當我包含其他服務器的URL時,它的工作原理並不適用於我的URL。我認爲這是我的服務器或我的API中的問題。

直到我看到我的常量指向的URL沒有http,因爲正如在AngularJS中的正常編程中所做的那樣,將常量//api.example.com/加上,並讓瀏覽器負責包含它。但它不會在設備上發生,所以我沒有訪問我的API。

我不知道這是你的情況,但花了很長時間才知道,我想與你分享。

+0

「直到我看到我的常量引用URL」 你是如何檢查設備上的 –

+0

@manishkumar你可以通過命令行看到使用AVD,請參閱:https://developer.android.com/工作室/運行/仿真器,commandline.html – juliafealves

0

添加這個元標記在您的index.html

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

我做過。同樣的結果:( –