javascript - IE9 中的 Angular $http 和 Fusion Table

标签 javascript angularjs internet-explorer-9 google-fusion-tables

我正在尝试向我的 Angular Controller 中的谷歌融合表发出简单的获取请求。

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

这适用于 firefox、chrome、safari 和 IE10+,但是在 IE9(我需要支持)中,请求甚至无法发送,并且控制台显示访问被拒绝。我查看了其他 stackoverflow 答案,我相信它与跨源请求有关。我试过This stackoverflow 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”是一种通信技术,允许从不同域下的服务器请求数据(也称为跨源请求)。这是您在 jQuery AJAX 请求中使用的内容。

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

关于javascript - IE9 中的 Angular $http 和 Fusion Table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30971984/

相关文章:

javascript - 从JavaScript获取手机的唯一ID

javascript - 让表格宽度动态超过页面宽度?

javascript - 如何有条件地从对象中删除属性?

angularjs - 在过滤器中使用 angular.forEach

javascript - AngularJS SEO - 一劳永逸

javascript - 迭代顺序在 IE9 中不同

javascript - C# asp.net mvc 设置 CheckBoxFor 带有模型值的选中属性

javascript - 继续在 $scope.$watch 函数内获取 "TypeError: Cannot read property ' value' of null"

css - 为什么 Internet Explorer 9 不显示前 50 个元素的 CSS?

javascript - IE 抛出 JavaScript 错误 : The value of the property 'googleMapsQuery' is null or undefined, 不是函数对象(在其他浏览器中有效)