Повторяющиеся заголовки, полученные от сервера

повторяющиеся заголовки, полученные от сервера

ответ сервера содержал повторяющиеся заголовки. Эта проблема, как правило, является результатом неправильно настроенного веб-сайта или прокси-сервера. Эту проблему может устранить только администратор веб-сайта или прокси-сервера.

ошибка 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}\"");