【发布时间】:2013-04-11 23:08:15
【问题描述】:
我正在尝试让我的 Angular 应用程序执行 $http.get 请求。适用于除 IE8 之外的任何地方。我正在使用最新的 Angular(我认为是 1.0.6)。 IE 给出的唯一消息是:TypeError:
访问被拒绝。 未定义(在以前的角度是)
我的主机 (nodejs) 设置为发送 cors 标头:
res.header('Access-Control-Allow-Origin', '*'); //config.allowedDomains
res.header('Access-Control-Allow-Credentials', true);
res.header('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, X-Requested-By');
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
我尝试使用调试工具获取有关错误的更多信息,但是:
Fiddler:不显示 xmlhttprequests - 似乎您可以破解您的 NET 应用程序来解决此问题,但不确定如何处理我的网页。 DebugBar:也不显示这些请求 FirebugLite:我尝试的 2 个版本已损坏 - 只是随机错误并且无法加载
将主机更改为相同的来源可以解决问题,所以我认为它正在尝试一些东西,但是很难调试。
关于这方面的 Angular 帖子似乎已经过时了,我不知道从这里开始做什么。
【问题讨论】:
-
Fiddler 确实为 IE 显示了 XHR。如果没有,那将是一个巨大的疏忽。 stackoverflow.com/questions/7351238/…
-
也准确地说,IE8和IE9没有XHR,而是做XDomainRequest,或者XDR。
-
好吧,我已经阅读了那个提琴手的帖子并检查了设置,在我的一生中,我看不到任何这些请求。其他帖子表明必须为提琴手设置代理才能获取这些。而且我知道 IE8 XHR - XDomainRequest - 我似乎无法为当前的 Angular 文档提供资金。一些较早的帖子表明不支持 XDomainRequests,但不确定当前状态是什么 - 我很难相信 IE8 不能与 Angular $http 一起使用
-
很可能是我的设置导致 Fiddler 无法工作 - vmware 客户端到 OSX Nodejs 服务器。然而,主要问题只是让 IE8 工作
-
我的系统就是这样设置的(当然我不测试 IE8)。我知道 $http 应该适用于 IE8,所以可能还有其他问题。
标签: javascript node.js internet-explorer-8 angularjs