AngularJS - $http.get - problem.

0

Czołem,

problem polega na tym, że nie potrafię odebrać żadnych danych ze strony:
https://www.metaweather.com/api/

Kiedy to samo robię np. tutaj:
https://jsonplaceholder.typicode.com/
to wszystko ładnie działa.

Dziękuję za każdą wskazówkę.

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<body ng-app="weatherApp" ng-controller="weatherCtrl">

  <div class="block">
    <ul>
      <li ng-repeat="x in weather">
         {{ x.woeid }}
      </li>
    </ul>
 </div>
 
 <script>
    
    var weatherApp = angular.module("weatherApp", []);
    weatherApp.controller("weatherCtrl", function ($scope, $http) {

    $http.get("https://www.metaweather.com/api/location/search/?query=london")
     .then(function success(response) {
        $scope.weather = response.data;
      }, function err(response) {
        $scope.weather = response.data;
        console.log("Nie mogę odczytać danych.");
        console.log($scope.weather);
      });
    });
    
</script>
</body>

https://jsfiddle.net/q47jo0z5/1/

0

Poczytaj o Cross-Origin Resource Sharing. Nie wiem jak to zrobić z użyciem serwisu $http, ale z $resource możesz tak:

$resource("http://twojurl.com/api/costam", { callback: "JSON_CALLBACK" }, { get: { method: "JSONP" }});

Najważniejsze jest tu { callback: "JSON_CALLBACK" }, { get: { method: "JSONP" }}.

0

Siedzę już pół dnia nad tym i nie mogę ruszyć dalej. Przekopałem stackoverflow i nie potrafię napisać działającego kodu.
Może jeszcze ktoś poratuje?

0

metaweather chyba nie wspiera jsonp, więc chyba musisz ogarnąć inne api.

0

Właśnie tego się wczoraj doczytałem tutaj:
https://stackoverflow.com/questions/40707929/getting-data-from-metaweather-api-to-angularjs-page
Problem polega na tym, że "muszę" użyć metaweather.

W każdym razie dziękuję za zainteresowanie się.

1 użytkowników online, w tym zalogowanych: 0, gości: 1