Подтвердить что ты не робот

Не удается прочитать протокол свойств undefined

Получение этой ошибки в консоли при попытке получить данные из 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) 
4b9b3361

Ответ 1

Вы выдаете неверный запрос http.

Вы не должны устанавливать заголовки в отдельный вызов $http. Вызов $http() будет действительно выдавать запрос, но поскольку вы настроили его только с заголовком (без URL-адреса или метода), он вызывает эту ошибку (как и ожидалось).

Если вы хотите установить свой заголовок, вы захотите сделать это, передав собственный объект конфигурации в качестве второго параметра для вашего вызова $http.get():

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

Ответ 2

Эта ошибка возникает, когда что-то идет не так в запросе, например. если вы установите url как undefined, недопустимый метод или недопустимый тип содержимого, что-то не так с объектом запроса вызовет эту ошибку.