Javascript Internet explorer拦截XML响应
我有一个表单,它的目标是iframe 提交表单时,响应是XML,我使用Javascript分析响应 我注意到在IE上运行时,IE截取响应并将其视为RSS提要,因此我的代码从未收到响应。如果我禁用RSS源(从internet选项,内容选项卡),一切正常 我将响应的内容类型设置为“text/xml;charset=UTF-8”,但仍然不起作用Javascript Internet explorer拦截XML响应,javascript,html,xml,internet-explorer,rss,Javascript,Html,Xml,Internet Explorer,Rss,我有一个表单,它的目标是iframe 提交表单时,响应是XML,我使用Javascript分析响应 我注意到在IE上运行时,IE截取响应并将其视为RSS提要,因此我的代码从未收到响应。如果我禁用RSS源(从internet选项,内容选项卡),一切正常 我将响应的内容类型设置为“text/xml;charset=UTF-8”,但仍然不起作用 有什么解决方法吗?在这种情况下,最好的解决方法是不使用iframe。听起来IE正在捕获http响应并自己读取它。您不调用AJAX来检索信息有什么原因吗?听起来
有什么解决方法吗?在这种情况下,最好的解决方法是不使用iframe。听起来IE正在捕获http响应并自己读取它。您不调用AJAX来检索信息有什么原因吗?听起来您仍然依赖JavaScript来处理响应,因此我认为使用XMLHttpRequest对象对您来说会更好: 如果这太复杂了,那么看看像jQuery这样的库:它内置了(而且更简单)函数来进行AJAX调用和处理响应
要对此进行扩展,您需要将表单的submit函数绑定到一个JS函数(或者使用jQuery)并提取表单数据,在AJAX请求中发送它,然后处理响应。jQuery有一个内置函数serialize(),用于将页面上的表单数据转换为可在ajax()函数中使用的信息,以发送到服务器。如果您不熟悉XMLHttpRequest对象,我强烈建议您使用类似jQuery的库来完成此任务。是的,还要确保使用头文件以正确的内容配置输出文件,确保IE获得“response.xml”而不是“response.php”或类似的内容 内容配置:附件;filename=“response.xml”' 好的,找到问题了… 我的响应XML包含反馈标记。 IE将这些标签视为RSS提要。将标记名更改为FDBACK可解决此问题
MS,为什么这没有被记录下来?Heh,我喜欢在IE中阅读像这样奇怪的东西。实际上,附件配置在chrome中有时会很奇怪,所以请确保您阅读用户代理信息,并且只在IE中执行附件内容。只要内容类型设置正确,其他浏览器通常会正确处理响应,不管用来访问它的url是什么。