2016-12-12 37 views
0

嗨,我嘗試使用Angularjs TU得到Bing地圖API,但我在控制檯收到此錯誤:AngularJS JSONP成功錯誤

TypeError: $http.jsonp(...).success is not a function 

這裏是我的控制器

.controller('bingMaps', ['$scope', '$http', MapController]); 

    function MapController($scope, $http) { 
     var vm = this; 

     vm.mapsearch = function() { 
      var url = "http://dev.virtualearth.net/REST/v1/Locations?callback=JSON_CALLBACK&key=MYKEY&o=json"; 
      $http.jsonp(url) 
       .success(function(data){ 
        console.log('success'); 
       }) 
       .error(function() { 
        console.log('error') 
       }); 

     } 
    } 

回答

3

你AREN」使用jQuery。沒有success方法。該函數返回一個標準的承諾。它有一個then方法(它有兩個參數,成功回調和錯誤回調)。

查看the documentation的例子。

+0

另外'$ http.jsonp'是不是真的功能AngularJS」'$ http'服務。 – 31piy

+0

有沒有機會使用get方法?現在它已被CORS –

+0

@EdinPuzic阻止 - 如果你想使用'get',那麼你需要獲得來自你提出請求的服務器的許可。 (如果你想使用JSONP,那麼你也需要這個權限,它只是以使用JSONP發送的數據的形式表示,而不是使用更明確和靈活的CORS方法)。 – Quentin

0

有您的Bing地圖REST URL中的幾個問題:

  • 沒有回調參數。有一個jsonp參數。
  • 您尚未提供查詢以進行搜索,因此請求中會出現錯誤。

這是您的查詢的修改版本:

http://dev.virtualearth.net/REST/v1/Locations?jsonp=JSON_CALLBACK&key=MYKEY&o=json&q=[your搜索查詢]

我建議考慮看看了Bing地圖的最佳做法:

https://msdn.microsoft.com/en-us/library/dn894107.aspx

有也是一篇有用的博客文章,介紹如何在這裏使用Bing Maps REST服務和不同的JavaScript框架:

https://blogs.bing.com/maps/2015/03/05/accessing-the-bing-maps-rest-services-from-various-javascript-frameworks/