IE通过AJAX调用改变Xml

本文关键字:改变 Xml 调用 AJAX 通过 IE | 更新日期: 2023-09-27 18:02:32

我得到xml文件与以下代码..

var uploadInfo = context.Request.Files[0];
                var uploadStream = uploadInfo.InputStream;
                var upload = new byte[uploadInfo.ContentLength];
                uploadStream.Read(upload, 0, uploadInfo.ContentLength);
                var payload = System.Text.Encoding.UTF8.GetString(upload);
                context.Response.ContentType = "text/plain";
                context.Response.Write(payload);

xml看起来是这样的,正如预期的那样…

<?xml version="1.0"?>  
 <AData>
 <DataElement name="Comments" type="String"></DataElement> 
 <DataElement name="ModAuthor" type="String"></DataElement>  
 <DataElement name="CreateDate" type="Datetime"></DataElement>    
 <DataElement name="Author" type="String"></DataElement>   
 </AData>

我正在用这个代码调用我的处理程序。

  $.ajaxFileUpload({
                url: 'AjaxFileUploader.ashx',
                secureuri: false,
                fileElementId: 'fileToUpload',
                dataType: 'text',
                success: function (data, status) {
                    alert(data);
                },
                error: function (data, status, e) {
                    alert(e);
                }
            }

在chrome中一切都很好,但在IE中测试成功方法返回以下…

<DIV class=e><SPAN class=b>&nbsp;</SPAN> <SPAN class=m>&lt;?</SPAN><SPAN class=pi>xml version="1.0" </SPAN><SPAN class=m>?&gt;</SPAN> </DIV>
<DIV class=e>
<DIV style="TEXT-INDENT: -2em; MARGIN-LEFT: 1em" class=c><A class=b onfocus=h() onclick="return false" href="#">-</A> <SPAN class=m>&lt;</SPAN><SPAN class=t>AData</SPAN><SPAN class=m>&gt;</SPAN></DIV>
<DIV>
<DIV class=e>
<DIV style="TEXT-INDENT: -2em; MARGIN-LEFT: 1em"><SPAN class=b>&nbsp;</SPAN> <SPAN class=m>&lt;</SPAN><SPAN class=t>DataElement</SPAN> <SPAN class=t>name</SPAN><SPAN class=m>="</SPAN><B>Comments</B><SPAN class=m>"</SPAN><SPAN class=t> type</SPAN><SPAN class=m>="</SPAN><B>String</B><SPAN class=m>"</SPAN><SPAN class=m> /&gt;</SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="TEXT-INDENT: -2em; MARGIN-LEFT: 1em"><SPAN class=b>&nbsp;</SPAN> <SPAN class=m>&lt;</SPAN><SPAN class=t>DataElement</SPAN> <SPAN class=t>name</SPAN><SPAN class=m>="</SPAN><B>ModAuthor</B><SPAN class=m>"</SPAN><SPAN class=t> type</SPAN><SPAN class=m>="</SPAN><B>String</B><SPAN class=m>"</SPAN><SPAN class=m> /&gt;</SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="TEXT-INDENT: -2em; MARGIN-LEFT: 1em"><SPAN class=b>&nbsp;</SPAN> <SPAN class=m>&lt;</SPAN><SPAN class=t>DataElement</SPAN> <SPAN class=t>name</SPAN><SPAN class=m>="</SPAN><B>CreateDate</B><SPAN class=m>"</SPAN><SPAN class=t> type</SPAN><SPAN class=m>="</SPAN><B>Datetime</B><SPAN class=m>"</SPAN><SPAN class=m> /&gt;</SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="TEXT-INDENT: -2em; MARGIN-LEFT: 1em"><SPAN class=b>&nbsp;</SPAN> <SPAN class=m>&lt;</SPAN><SPAN class=t>DataElement</SPAN> <SPAN class=t>name</SPAN><SPAN class=m>="</SPAN><B>Author</B><SPAN class=m>"</SPAN><SPAN class=t> type</SPAN><SPAN class=m>="</SPAN><B>String</B><SPAN class=m>"</SPAN><SPAN class=m> /&gt;</SPAN> </DIV></DIV>
<DIV><SPAN class=b>&nbsp;</SPAN> <SPAN class=m>&lt;/</SPAN><SPAN class=t>AData</SPAN><SPAN class=m>&gt;</SPAN></DIV></DIV></DIV>

任何想法,我可以做什么,简单地返回xml字符串,我从处理程序代码?它返回的xml在chrome浏览器很好,但IE给我什么看起来是html和样式自动。

IE通过AJAX调用改变Xml

尝试添加X-Content-Type-Options: nosniff标题:
http://blogs.msdn.com/b/ie/archive/2008/07/02/ie8-security-part-v-comprehensive-protection.aspx

context.Response.ContentType = "text/plain";
context.Response.AppendHeader("X-Content-Type-Options", "nosniff");