我有一个具有以下 Doctype 的网站:
<!DOCTYPE HTML>
<html>...</htm>
我发现了导致某些移动浏览器崩溃的问题(黑莓和较旧的机器人)。例如,在 Android 上,当发出请求时,它会发送此 header :
Accept: application/xml,appliation/xhtml+xml,text/html ...
问题是我的网站不符合 XHTML,但 IIS 决定,既然请求页面的浏览器更喜欢 xhtml,那么它应该提供 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 在该页面上中断。
尝试在 Debug模式下运行移动浏览器(如果可能)并查看实际错误是什么。因为我看不出 IIS 如何随意更改内容类型,尤其是 XHTML 类型,这意味着底层 HTML 必须完美,
关于c# - 默认响应 Content-Type 有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115523/