Повторяющиеся заголовки, полученные от сервера
повторяющиеся заголовки, полученные от сервера
ответ сервера содержал повторяющиеся заголовки. Эта проблема, как правило, является результатом неправильно настроенного веб-сайта или прокси-сервера. Эту проблему может устранить только администратор веб-сайта или прокси-сервера.
ошибка 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_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","вложение, имя файла=имя_файла").build();
Я случайно поставил запятую после вложения. Получил его, заменив запятую точкой с запятой.
просто поместите пару двойных кавычек вокруг вашего имени файла, как это:
этого.Ответ.AddHeader ("Content-disposition", $ "attachment; filename=\" {outputFileName}\"");