IE将url视为下载,而不是HTML页面
本文关键字:HTML 页面 下载 url IE | 更新日期: 2023-09-27 18:18:38
我正在使用自托管ServiceStack开发一个本地服务器。我硬编码了一个演示网页,并允许在localhost:8080/page
:
public class PageService : IService<Page>
{
public object Execute(Page request)
{
var html = System.IO.File.ReadAllText(@"demo_chat2.html");
return html;
}
}
// set route
public override void Configure(Container container)
{
Routes
.Add<Page>("/page")
.Add<Hello>("/hello")
.Add<Hello>("/hello/{Name}");
}
对于Chrome/Firefox/Opera可以正常工作,但是,IE会将url视为下载请求并提示"您想从本地主机打开或保存页面吗?"
我该怎么做才能让IE把url当作网页?(我已经在演示页面中添加了doctype头;但这不能阻止IE将其视为下载请求。)
编辑。
Ok。我使用Fiddler来检查访问本地主机时的响应。IE和Firefox得到的响应完全相同。在页眉中,内容类型写成:
Content-Type: text/html,text/html
Firefox将此内容类型视为text/html
,但是IE不识别此内容类型(它只识别单个text/html
)!
所以这让我相信这是由于SS中的错误。
<<p> 解决方案/strong> 一个解决方案是显式地设置内容类型: return new HttpResult(
new MemoryStream(Encoding.UTF8.GetBytes(html)), "text/html");
我不知道你到底是什么问题。如果您想提供html页面,有一种不同的方法可以做到这一点。
Servicestack支持剃刀引擎作为插件,这是有用的,如果你喜欢服务html页面,也可以绑定数据与它。另一种方法是在这里解释。razor.servicestack.net。这可能有用。如果你需要更多的细节,请告诉我。