Internet Explorer拦截XML响应

问题描述:

我有一个表单,其目标是一个iframe。Internet Explorer拦截XML响应

提交表单时,响应是XML,我有Javascript来分析响应。

我注意到,当在IE上运行时,IE拦截响应并将其视为RSS源,所以我的代码从未收到响应。如果我禁用RSS提要(从互联网选项,内容选项卡)一切正常。

我将响应的内容类型设置为“text/xml; charset = UTF-8“,但它仍然不起作用。

有什么解决方法吗?

+1

嘿,我喜欢在IE浏览这类奇怪的东西。 – Oliver 2012-02-14 17:13:04

最好的解决方法是在这种情况下不要使用iframe。这听起来像IE浏览器正在抓住http响应并自行读取它。是否有一个原因,你没有进行AJAX调用来检索信息?这听起来像你依靠JavaScript来处理响应,所以我认为使用XMLHttpRequest对象会对你更好:http://www.w3.org/TR/XMLHttpRequest/

如果这太复杂了,请查看像jQuery的库:http://jquery.com/内置(和更简单)的功能,使AJAX调用和处理响应。

为了扩展这个,你需要将表单的submit函数绑定到一个JS函数(或者使用jQuery来完成),然后选择表单数据,通过AJAX请求发送,然后处理响应。 jQuery有一个内置函数serialize(),用于将页面上的表单数据转换为准备在ajax()函数中用于发送到服务器的信息。如果您不熟悉XMLHttpRequest对象,我会强烈建议使用像jQuery这样的库来完成此任务。

是的,还要确保该文件是用正确的内容配置使用头文件输出,这样做IE被“response.xml”,而不是“response.php”或一些这样...

'内容 - 处置:附件; filename =“response.xml”'

+0

实际上,附件配置在Chrome中有时候很奇怪,因此请确保您阅读了用户代理信息,并且只在IE中执行附件。不管用于访问它的网址,只要内容类型设置正确,其他浏览器通常都会正确处理响应。 – Brian 2012-02-16 16:44:21

确定,发现问题... 我的回复XML包含FEEDBACK标签。 IE浏览器将这些标签视为RSS订阅源。将标签名称更改为FDBACK可解决此问题...

MS,为什么没有记录?