Angular IE9 中的 $http 和 Fusion Tables

Angular $http and Fusion Tables in IE9

我正在尝试对我的 angular 控制器中的 google 融合 table 发出简单的获取请求。

$http.get(url)
    .success(function(data) {
        //Do stuff with data
    })

这适用于 firefox、chrome、safari 和 IE10+,但在 IE9(我需要支持)中,请求甚至无法发送,控制台显示 access is denied。我查看了其他 Whosebug 答案,我相信它与跨源请求有关。我试了 This Whosebug answer 没用。

我现在使用下面的 jQuery 设法解决了这个问题。但是,我宁愿尽可能使用 angular 库。我还想知道为什么以下内容有效而我的 angular $http 请求无效。

$.ajax({
  url: urlForId.join(''),
  dataType: 'jsonp',
  success: function(data) {
    //Do stuff with data
  }
});

您应该使用 Angular $http.jsonp() 请求而不是 $http.get()。

JSONP 或“JSON with padding”是允许从不同域下的服务器请求数据的通信技术(也称为跨源请求)。这是您在 jQuery AJAX 请求中使用的内容。

https://docs.angularjs.org/api/ng/service/$http#jsonp