小编Bla*_*irM的帖子

Chrome,pdf显示,从服务器收到的重复标头

我在网站上有一个部分,我在灯箱里面显示一个pdf.最近的Chrome升级打破了这个显示:

错误349(net :: ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION):收到多个Content-Disposition标头.这是不允许的,以防止HTTP响应分裂攻击.

这仍然可以在IE中正常工作.

我在IIS6上使用ASP.NET MVC3

我用来生成文件的代码如下.

如果我删除内联语句,则文件会下载,但会破坏灯箱功能.

问题代码

public FileResult PrintServices()
{
    //... unrelated code removed
    MemoryStream memoryStream = new MemoryStream();
    pdfRenderer.PdfDocument.Save(memoryStream);
    string filename = "ServicesSummary.pdf";

    Response.AppendHeader("Content-Disposition", "inline;");

    return File(memoryStream.ToArray(), "application/pdf", filename);
}
Run Code Online (Sandbox Code Playgroud)

修复

去掉

Response.AppendHeader("Content-Disposition", "inline;");
Run Code Online (Sandbox Code Playgroud)

然后改变

return File(memoryStream.ToArray(), "application/pdf", filename);
Run Code Online (Sandbox Code Playgroud)

return File(memoryStream.ToArray(), "application/pdf");
Run Code Online (Sandbox Code Playgroud)

iis-6 google-chrome asp.net-mvc-3

59
推荐指数
2
解决办法
4万
查看次数

标签 统计

asp.net-mvc-3 ×1

google-chrome ×1

iis-6 ×1