我在服务器中有一个特定的xml答案,我想在我的页面的AJAX请求中使用它作为原点。正确配置了服务器,以便跨域请求起作用。
问题是内容类型 - 它已修复为'text/html'
,我无法更改。
大多数浏览器似乎都乐于接受具有该内容类型的XML响应。到目前为止,我的代码适用于任何最新版本的Firefox,Chrome和Safari。
但Internet Explorer 8给我带来了麻烦。
我准备了一个试图模拟我的问题的jsfiddle:
在那个jsfiddle上,对/echo/html
服务(在内容类型中返回'text/html'
)发出了一个AJAX请求,但随后它被用作xml响应。 "accepts"
参数,即使是为此特定目的而设置,也不会对任何事情产生任何影响 - 我可以删除它,一切都可以在FF,Chr上运行。
但是我不能让它在IE8上运行。有人有任何提示吗?
谢谢!
答案 0 :(得分:1)
查看控制台输出(我在IE8模式下使用IE9,因此在纯IE8中可能不一样),因为Array.Map()函数不可用而导致错误。谷歌搜索似乎暗示这是在IE9中添加的。
有关可以解决问题的地图功能,请参阅this answer。
答案 1 :(得分:1)
问题在于我认为同源策略已经通过Apache的Access-Control-Allow-Origin "*"
指令解决了,但事实证明 IE8不尊重它。
我唯一的选择是实施makeshift proxy server。
但是!
一旦代理服务器运行起来,我就完全找到了akiller提及并回答的问题 - IE8没有Array.map
。
所以,我标记答案是正确的,但请记住,这不是完整的答案!你也需要一个代理。