c# – 出现默认响应Content-Type问题

我有一个具有以下Doctype的网站:

<!DOCTYPE HTML>
<html>...</htm>

我发现了导致某些移动浏览器崩溃的问题(黑莓和老式机器人).例如,在Android上,当发出请求时,它会发送此标头:

Accept: application/xml,appliation/xhtml+xml,text/html ...

问题是我的网站不符合XHTML,但IIS决定,因为请求页面的浏览器更喜欢xhtml,那么它应该提供而不是text / html.

我已经尝试通过添加< META HTTP-EQUIV =“CONTENT-TYPE”CONTENT =“text / html; charset = UTF-8”>来覆盖它.到页面,但它不起作用.

我正在试图找出最简单的方法告诉iis停止为http://mydomain.com/mobile的所有请求提供xhtml.我想通过覆盖HttpModule中的Response.Content-Type来做到这一点.

这里有什么我想念的吗?解决它的最佳方法是什么?

最佳答案 IIS没有你提到的功能(覆盖.NET输出的内容类型),因为它取决于应用程序执行此操作.移动设备“断开”时会发生什么,您能提供HTTP调试跟踪吗?

要测试ContentType是否确实存在问题,请将其添加到其中一个页面的Page_Load事件中,然后在受影响的移动设备上查看该页面.

Response.ContentType = "text/html";

移动浏览器对桌面版本有疑问,它们解析JavaScript,以不同方式处理DOM元素.例如,Mobile Safari有一个不完整的Date.parse()方法,它会导致JS在该页面上中断.

尝试在调试模式下运行移动浏览器(如果可能),看看实际的错误是什么.因为我无法看到IIS将如何改变内容类型,特别是对于XHTML类型,这意味着底层HTML必须是完美的,

点赞