2015-05-28 8 views
5

Come eseguire la richiesta http tra domini in Ionic Framework su Android?Come eseguire la richiesta http tra domini in Ionic Framework su Android?

Ho provato a impostare proxy in ionic.project, non aiuta. Ecco come faccio io la domanda:

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

Ecco ionic.project:

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

Non funziona su Android, la funzione (err) ramo è sempre chiamato. Funziona sul browser di un computer e non funziona sul browser di un altro PC.

Cordova 5.0.0, Ionic 1.3.20, Android 5.x.

+0

stai usando phonegapp o cordova? in tal caso assicurati che l'origine di accesso sia impostata correttamente vedi: [cross origin] (http://docs.phonegap.com/en/1.9.0/guide_whitelist_index.md.html) – Praveen

+0

di quale browser stai parlando? cromo? vale a dire? –

+0

Stai usando la versione 4 della piattaforma cordova-android o una versione precedente? se usi la versione 4, devi assicurarti di avere il plug-in whitelist per il plugin cordova nel tuo progetto. – QuickFix

risposta

0

Quello che ho finito per fare a mio ionico app è che ho aggiunto questo al file PHP, che gioca come JSON API (e che io chiamo da ionico app):

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

Quindi, se controlli il vostro API endpoint server e sono in grado di fare cambiamenti simili (non hai menzionato quale stack API usi?), Dovresti stare bene. Se qualcuno ha una migliore caso d'uso, si prega di rispondere ...

0

localhost è "questa macchina", è per questo che funziona sulla macchina con il server e non funziona su altre macchine.

Modifica localhost al IP locale della macchina con il server, qualcosa come 192.168.1.X

0

Se si tenta di chiamare il servizio al di fuori della vostra origine, allora si dovrebbe aggiungere Access Control intestazioni nel lato server, altrimenti invece di $ http.get puoi provare $ http.jsonp (non ho provato questo metodo).

Spero che questo ti possa aiutare.

Problemi correlati