web-dev-qa-db-ja.com

未定義のプロパティ「プロトコル」を読み取ることができません

APIからデータを取得しようとしたときにコンソールでそのエラーを取得します。誰も以前にこの問題を抱えていますか?

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;
});

エラー:

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

不正な$ httpリクエストを発行しています。

_$http_の個別の呼び出しでヘッダーを設定することは想定されていません。 $http()の呼び出しは実際にリクエストを発行しますが、ヘッダーのみ(URLまたはメソッドなし)で構成したため、(予想どおり)エラーがスローされます。

ヘッダーを設定する場合は、カスタム設定オブジェクトを$http.get()呼び出しの2番目のパラメーターとして渡すことで、これを実行できます。

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

このエラーは、たとえば、リクエストで問題が発生した場合に発生します。 urlを未定義、無効なメソッド、または無効なコンテンツタイプとして設定した場合、リクエストオブジェクトに問題があると、このエラーがスローされます。

14
Laxmikant Dange