我正在定制iNotes(Notes web邮件客户端),使用需要ajax调用外部源的javascript添加一些功能。这样做我发现Internet Explorer不会执行CORS(跨域)请求。错误是访问被拒绝或其他一些安全错误,具体取决于它的调用方式。 Chrome和FF以及Safari都可以使用。
我发现我认为是罪魁祸首,iNotes添加了一个元标记来模仿IE9。
<META http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
对于CORS请求,IE9不支持XMLHttpRequest,而是必须使用XDomainRequest,它仅在IE8和IE9中受支持。由于它正在模拟IE9,因此XMLHttpRequest(或jQuery .ajax调用此问题)不起作用。
我无法找到任何方法来删除该元标记,我对邮件文件进行了搜索,并且找不到IE = EmulateIE9的匹配项。而且我确定如果我删除它,我会在iNotes中打破一些东西。
我不想加载jQuery,但可能会为此脚本执行此操作并包含moonscript插件,该插件使用XDR for ie8和ie9浏览器。如果iNotes一直在更新,它仍然有效。
其他人遇到此问题并找到更好的解决方案吗?
答案 0 :(得分:0)
Lothar Mueller指出了我正确的方向。
Domino 9.0.1 Fix Pack 5添加了一个Forms9s.nsf,它允许你摆脱&#34; Quirks Mode&#34;用于IE向后兼容性。安装FP后,安装新的forms9s.nsf文件,然后用
更新notes.iniiNotes_WA_DefaultFormsFile=iNotes/Forms9s.nsf
iNotes_WA_FormsFiles=iNotes/Forms9s.nsf
它消除了IE的仿真标记。我仍然需要测试我的iNotes自定义应用程序,但这提供了一个选项来运行一些以前没有工作的IE功能,例如来自iNotesExt_9.nsf等的Ajax请求。