从服务器接收到重复的标题

从服务器接收到重复的标题

来自服务器的响应包含重复的标题。 此问题通常是网站或代理configuration错误的结果。 只有网站或代理pipe理员可以解决这个问题。

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

我发现这个错误,而导出到PDF格式的铬。

Response.Buffer = false; Response.ClearHeaders(); string ext = objProp.PACKAGEFILENAME.Substring(objProp.PACKAGEFILENAME.LastIndexOf(".")); string ext1 = ext.Substring(1); Response.ContentType = ext1; Response.AddHeader("Content-Disposition", "target;_blank,attachment; filename=" + objProp.PACKAGEFILENAME); const int ChunkSize = 1024; byte[] binary = objProp.PACKAGEDOCUMENT; System.IO.MemoryStream ms = new System.IO.MemoryStream(binary); int SizeToWrite = ChunkSize; for (int i = 0; i < binary.GetUpperBound(0) - 1; i = i + ChunkSize) { if (!Response.IsClientConnected) return; if (i + ChunkSize >= binary.Length) SizeToWrite = binary.Length - i; byte[] chunk = new byte[SizeToWrite]; ms.Read(chunk, 0, SizeToWrite); Response.BinaryWrite(chunk); Response.Flush(); } Response.Close(); 

如何解决这个问题?

这个有点老,但在谷歌排名高,所以我想我会扔我从Chromefind的答案,pdf显示,从服务器收到的重复头

基本上我的问题是,文件名包含逗号。 做一个replace逗号删除它们,你应该没事的。 我的function,使一个有效的文件名在下面。

  public static string MakeValidFileName(string name) { string invalidChars = Regex.Escape(new string(System.IO.Path.GetInvalidFileNameChars())); string invalidReStr = string.Format(@"[{0}]+", invalidChars); string replace = Regex.Replace(name, invalidReStr, "_").Replace(";", "").Replace(",", ""); return replace; } 

服务器应该在文件名中加上双引号,正如@cusman和@Touko在他们的回复中提到的那样。

例如:

 Response.AddHeader("Content-Disposition", "attachment;filename=\"" + filename + "\""); 

只需在你的文件名中加上一对双引号就可以了:

this.Response.AddHeader(“Content-disposition”,$“attachment; filename = \”{outputFileName} \“”);

对我来说,问题是关于逗号不在文件名中,但如下所示:

Response.ok(streamingOutput,MediaType.APPLICATION_OCTET_STREAM_TYPE).header(“content-disposition”,“ attachment,filename = your_file_name”)。

依恋后我不小心插了一个逗号。 通过用分号replace逗号来解决它。