1

这是从服务器所产生的原始响应(使用Fiddler2)为什么的Internet Explorer(8)认为这是XML

HTTP/1.1 200 OK 
Cache-Control: private 
Content-Type: text/plain; charset=utf-8 
Server: Microsoft-IIS/7.0 
X-AspNet-Version: 4.0.30319 
X-Powered-By: ASP.NET 
MicrosoftOfficeWebServer: 5.0_Pub 
MS-Author-Via: MS-FP/4.0 
Date: Fri, 10 Dec 2010 18:19:18 GMT 
Content-Length: 594 

Contents of 24194_XXXXXXXXXX.log as of 10/12/2010 19:19:18 
w3wp.exe Information: 0 : START: New Alarm [9] 
w3wp.exe Information: 0 : 12/10/2010 19:14:56 - <?xml version="1.0"?> 
<CALLS> 
    <CALL> 
    <CALL_ID>9_1</CALL_ID> 
    <BODY>004|007|015|058|1_ToConfirm|2_ToDecline</BODY> 
    <LANGID>321</LANGID> 
    <TO1>99999999999</TO1> 
    <TO2 /> 
    </CALL> 
</CALLS> 
w3wp.exe Information: 0 : END: New Alarm [9] 
w3wp.exe Information: 0 : 12/10/2010 19:15:30 - <RESULT><CALL_ID>9_1</CALL_ID><CALLRESULT1>0</CALLRESULT1><DTMF1>2</DTMF1><CALLRESULT2></CALLRESULT2><DTMF2></DTMF2></RESULT> 

在我的asp.net IHttpHandler我已经设置

  context.Response.ContentType = "text/plain"; 

它明确返回。在IE8我能看到这一点: IE8 trying to be clever...

当我尝试目标另存为...我得到这个(注意保存类型:): alt text

+1

我想这只是因为IE决定不服从给定的内容类型,而是这个开始解析内容,发现XML头,就是这样。为什么IE浏览器突然表现得像是写了一些奇特的标准:-)? – eckes 2010-12-10 18:43:47

+0

我尽量做到了;-) – Rudi 2010-12-10 21:27:34

回答

1

IE是怎么样的臭名昭着的二次猜测的内容类型。据推测他们正在做内容嗅探,<?xml version="1.0"?>正在绊倒它。

尝试使用比纯文本/或应用程序/八位字节流等不同的内容类型,看看你会得到相同的行为。它看起来像它只做了这两种类型的嗅探,试图解决错误配置的Web服务器:

参见http://msdn.microsoft.com/en-us/library/ms775147(VS.85).aspx#introduction

+0

我最初建议尝试使用application/octet-stream而不是text/plain。这是一个坏主意,因为这两种类型都被IE认为是“模棱两可”的。所以像application/x-logfile这样完全不同的东西可能会更好。 – 2010-12-10 18:48:20

+0

谢谢,我会尝试使用内容处置为http://support.microsoft.com/kb/260519 – Rudi 2010-12-10 21:30:45

+0

IE9是否仍然面色红润内容嗅探网页一个明确的内容类型设置后也? – Pacerier 2012-07-13 02:19:09

0

它看着它具有XML在它的实际内容:

<?xml version="1.0"?> 

很容易理解为什么当你没有任何html元素,如html,head或body。如果你想将xml显示为文本,那么你将需要包含在html中并正确地转义标记。

+0

谢谢,我明白,它试图成为'聪明'。但它是一个简单的文本日志文件,它恰好包含一些xml片段。我不想转换为xml。只想看看文字。 (IE应该做体面的事情,并打开记事本 - 真的) – Rudi 2010-12-10 21:34:14

相关问题