Дублирование заголовков, полученных с сервера
повторяющиеся заголовки, полученные от сервера
ответ от сервера содержал повторяющиеся заголовки. Эта проблема, как правило, является результатом неправильной настройки веб-сайта или прокси. Только администратор веб-сайта или прокси-сервера может устранить эту проблему.
ошибка 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION): получено несколько различных заголовков Content-Disposition. Это запрещено для защиты от разделения ответа HTTP атаки.
Я нашел эту ошибку при экспорте в pdf в chrome.
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();
Как это исправить?
4 ответов:
эти немного старые, но были высоко в рейтинге google, поэтому я думал, что брошу ответ, который я нашел от Chrome, pdf дисплей, дубликаты заголовков, полученных с сервера
в основном моя проблема также заключалась в том, что имя файла содержало запятые. Сделайте замену на запятые, чтобы удалить их, и вы должны быть в порядке. Моя функция, чтобы сделать допустимое имя файла ниже.
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 + "\"");
для меня вопрос был о запятой не в имени файла, а как показано ниже: -
ответ.ok (streamingOutput,MediaType.APPLICATION_OCTET_STREAM_TYPE).заголовок ("content-disposition","вложение, имя файла=имя_файла").построить();
Я случайно поставил запятую после вложения. Получил это решение, заменив запятую точкой с запятой.
просто поместите пару двойных кавычек вокруг вашего имени файла следующим образом:
этого.Ответ.AddHeader ("Content-disposition", $ "attachment; filename=\" {outputFileName}\"");
Comments