次のコードでファイルから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);
}
}
クロムではすべて問題ありませんが、IE でテストすると、success メソッドは次の結果を返します。
<DIV class=e><SPAN class=b> </SPAN> <SPAN class=m><?</SPAN><SPAN class=pi>xml version="1.0" </SPAN><SPAN class=m>?></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><</SPAN><SPAN class=t>AData</SPAN><SPAN class=m>></SPAN></DIV>
<DIV>
<DIV class=e>
<DIV style="TEXT-INDENT: -2em; MARGIN-LEFT: 1em"><SPAN class=b> </SPAN> <SPAN class=m><</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> /></SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="TEXT-INDENT: -2em; MARGIN-LEFT: 1em"><SPAN class=b> </SPAN> <SPAN class=m><</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> /></SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="TEXT-INDENT: -2em; MARGIN-LEFT: 1em"><SPAN class=b> </SPAN> <SPAN class=m><</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> /></SPAN> </DIV></DIV>
<DIV class=e>
<DIV style="TEXT-INDENT: -2em; MARGIN-LEFT: 1em"><SPAN class=b> </SPAN> <SPAN class=m><</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> /></SPAN> </DIV></DIV>
<DIV><SPAN class=b> </SPAN> <SPAN class=m></</SPAN><SPAN class=t>AData</SPAN><SPAN class=m>></SPAN></DIV></DIV></DIV>
ハンドラー コードから取得した xml の文字列を単純に返すためにできることはありますか? クロムで問題なくxmlを返しますが、IEはhtmlとスタイルのように見えるものを自動的に提供しています。