我在ie8上使用$ http时遇到问题。在我点击刷新之前,请求没有到达服务器。回到相同的链接仍然有同样的问题,直到我再次点击刷新。
奇怪的是,如果Web服务器在LAN上并且请求发送到LAN中的服务器,它可以正常工作。但是如果网络服务器是远程托管的,它就不起作用了!
以下是代码:
的index.html
{{test}}
控制器
app.controller(
"TestController",
function( $scope, $http) {
var url = '/test/get_data';
$http.get(url).success(function(data) {
$scope.test = data;
});
}
);
我收到此错误: TypeError:对象不支持此属性或方法未定义
我之前准备了一个JSFiddle,但是ieF中的JSFiddle被打破,所以我不在这里提供它。
不幸的是,我没有可以与您分享的远程服务器。
修改 以前我使用了一个外部URL,它给了我“拒绝访问”错误,即因为同源策略,如下面的一个答案所述。但这不是我原来的问题。当请求来自同一个来源时,我仍然遇到上述问题
答案 0 :(得分:1)
这是一个跨域请求,由于Same Origin Policy而不允许在ajax中使用。
这有两种解决方案 1. JSONP:这是一种使用javascript回调机制处理跨域ajax请求的跨浏览器方式 2. CORS:这是一个HTML5标准,它由除IE之外的大多数现代浏览器实现
Mongodb lab不支持jsonp,因为它支持CORS,这就是为什么你的请求在IE中失败并在Chrome和其他浏览器中运行。
根据this post,他们没有任何支持jsonp的计划,所以我并不认为有一种方法可以在IE中使用它。
答案 1 :(得分:0)
所以我找到了修复...希望这可以帮助那些遇到这个问题的人