Cordova / Ionique : $requête http, pas de traitement tout en imitant ou en cours d'exécution sur l'appareil
Tout se passe bien, la semaine dernière, et alors que j'étais à l'exécution de l'application sur le périphérique ou l'émulation avec Genymotion, tous les appels à l'api du travail (Soit de renvoyer les données ou, à défaut, mais au moins montrer quelque chose).
J'ai été en utilisant
ionic run android
- Je ajouter pour mettre à jour le mondial cordova ionique:
npm install -g cordova ionic
Depuis que tous les $requêtes http ne sont même pas de traitement. Je ne peux pas obtenir toutes les réponses que l'Api travaille toujours fine et de la SCRO sont parfaitement réglée.
Le seul moyen que j'ai trouvé est d'utiliser l'option --livereload ou-l :
ionic run -l android
Je veux éviter d'utiliser le livereload à tout prix.
J'ai commencé à créer un projet à partir de zéro en utilisant ionique 1.0.0 et cordova lib 4.3.0.
angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout, $http) {
alert('calling api');
//Create an anonymous access_token
$http
.get(domain+'/oauth/v2/token?client_id='+public_id+'&client_secret='+secret+'&grant_type=client_credentials')
.then(function(response){
alert(response.data.access_token);
});
})
Ainsi, alors que l'aide de :
ionic serve
Il est correctement alerte 'l'appel de l'api", alors la réponse (Un jeton d'accès OAuth pour l'exemple).
Mais en utilisant :
ionic run android
C'est seulement d'alerte 'l'appel de l'api", mais ne semble pas traiter la requête http.
Quelqu'un a l'expérience de quelque chose de similaire? Je suis de gros maux de tête.
Merci je vais essayer ça maintenant et de revenir à vous.
Bon, ça fonctionne! Bien que vous voulez écrire une réponse un lien vers ce post, je vais être heureux de le valider.
Il est en fait un doublon, mais votre question est plus spécifique dans la nature, qui va amener les gens quand ils effectuent une recherche sur cette question, donc je vais ajouter la réponse que
Community Wiki
.Pour moi avec cordova 6.3.0, j'ai modifier
<meta>
de .fichier html qui font une demande du réseau. Comme suivent, <meta http-equiv="Content-Security-Policy" content="default-src 'self' * data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
. - Je ajouter *
après 'self'
, alors il fonctionne. Ou mieux, pour être plus précis, mais j'ai spécifiquement pour spécifier le protocole trop savoir https://yourdomain.com
et les remplacer *
.
OriginalL'auteur Brieuc | 2015-05-19
Vous devez vous connecter pour publier un commentaire.
Avec la mise à jour de Cordoue 4.0.0, vous ferez face à un problème de ne pas être en mesure de faire appel HTTP RESTful Api et le chargement de ressources externes, qui incluent d'autres format html/audio/vidéo/images.
Liste blanche des domaines à l'aide de cordova-plugin-blanche résout le problème.
supprimer de la liste blanche plugin, s'il est déjà installé:
Ajouter à la liste blanche plugin via l'interface CLI:
puis ajoutez la ligne suivante de code dans votre application config.xml qui est situé dans votre répertoire racine de l'application:
Recommandés dans la documentation:
ou:
et
ce
meta
balise dans votreindex.html
La raison de ce problème:
De Cordova 4.0.0 pour Android mise à jour:
unsafe-inline
etunsafe-evals
?J'ai modifié ma réponse - nous pouvons également ajouter
<allow-navigation href="http://example.com/*" />
, qui a été recommandé dans la documentation.supprimer cordova-plugin-blanche et les ajouter à la liste blanche résolu mes problèmes sans aucune modification de code... et la liste blanche est la même version..... omg....
OriginalL'auteur
Il a travaillé pour moi, quand j'ai essayé le suivant...
Dans Config.xml, permettre l'accès & navigation de vos domaines:
Puis dans index.html, ajouter le Contenu de la Politique de Sécurité comme ci-dessous:
OriginalL'auteur Abhishek