簡體   English   中英

AngularJS $ http.get無法使用外部域json數據

[英]AngularJS $http.get not working with external domain json data

我正在嘗試使用angularjs從外部域中提取數據。 我在控制台中看不到任何問題。 我竭盡全力在這里擺弄 任何幫助或指針將是巨大的。

競爭代碼

<div ng-controller="myCtrl">{{response}}
    <button ng-click="getData()">GET Request</button>
</div>

控制器代碼

angular.module('myApp', [])
    .controller('myCtrl', function ($scope, $http) {
    $scope.getData = function () {
        $http.get("http://api.openweathermap.org/data/2.5/weather?zip=98007,us").success(function (response) {
            $scope.myData = response;
            console.log(response)
        });
    };
});

您的代碼很好,但是您在標記中遺漏了一些東西。 您缺少ng-app ,應該進行{{myData}}而不是{{response}} (因為myData已綁定到您的作用域並分配給response ,所以沒有變量名為response綁定到您的作用域)。 朋克

  <body ng-app="myApp">
    <div ng-controller="myCtrl">{{myData}}
        <button ng-click="getData()">GET Request</button>
    </div>
  </body>

使用瀏覽器開發工具,“網絡”選項卡顯示什么? 請求成功了嗎?

只需在正文或html中添加ng-app

通過查看您的jsFiddle,可以清楚地看到您的問題是您沒有在html中添加應用程序名稱。

這是您的更新jsFiddle: http : //jsfiddle.net/kn4yaoco/3/

您可以在控制台中看到您的請求正在正確響應。

您應該使用$ http .then ,然后這樣:

$http.get("http://api.openweathermap.org/data/2.5/weather?zip=98007,us")
  .then(function(response) {
     console.log(response);
  }):

最好

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM