web-dev-qa-db-fra.com

Impossible de lire la propriété 'protocol' d'undefined

Obtenir cette erreur dans la console lorsque vous essayez d'obtenir des données à partir d'une API. Quelqu'un a ce problème avant?

var url = "https://api.website.com/get/?type=events&lat=" + localStorage.getItem('latitude')
+ "&lng=" + localStorage.getItem('longitude') + "&distance=50";

$http({
    headers: {
        'Content-type': 'application/json'
    }
})

$http.get(url).success(function (events) {
    $scope.events = events;
});

erreur:

TypeError: Cannot read property 'protocol' of undefined
at Gb (http://localhost:38772/www/js/plugins/angular.min.js:114:238)
at s (http://localhost:38772/www/js/plugins/angular.min.js:65:249)
at new EventsController (http://localhost:38772/www/js/angular.js:4:5)
at d (http://localhost:38772/www/js/plugins/angular.min.js:30:452)
at Object.instantiate (http://localhost:38772/www/js/plugins/angular.min.js:31:80)
at http://localhost:38772/www/js/plugins/angular.min.js:61:486
at http://localhost:38772/www/js/plugins/angular.min.js:49:14
at q (http://localhost:38772/www/js/plugins/angular.min.js:7:380)
at E (http://localhost:38772/www/js/plugins/angular.min.js:48:382)
at f (http://localhost:38772/www/js/plugins/angular.min.js:42:399) 
39
user2901304

Vous émettez une demande $ http malformée.

Vous n'êtes pas censé définir vos en-têtes dans un appel distinct à $http. L'appel à $http() émettra réellement la demande, mais puisque vous l'avez configurée avec juste l'en-tête (pas d'url ou de méthode), elle vous envoie cette erreur (comme prévu).

Si vous souhaitez définir votre en-tête, vous voudrez le faire en passant un objet de configuration personnalisé comme deuxième paramètre à votre appel $http.get():

$http.get(url, {
  headers: {
    'Content-type': 'application/json'
  }
}).success(function (events) {
  $scope.events = events;
});
37
Stewie

Cette erreur se produit lorsque quelque chose se passe mal dans la demande, par exemple. si vous définissez l'URL comme méthode non définie, non valide ou type de contenu non valide, tout problème avec l'objet de demande générera cette erreur.

14
Laxmikant Dange