서버에서받은 중복 헤더
서버에서받은 중복 헤더
서버의 응답에 중복 헤더가 포함되었습니다. 이 문제는 일반적으로 잘못 구성된 웹 사이트 또는 프록시의 결과입니다. 웹 사이트 또는 프록시 관리자 만이 문제를 해결할 수 있습니다.
오류 349 (net :: ERR_RESPONSE_HEADERS_MULTIPLE_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();
이 문제를 해결하는 방법?
이것은 조금 오래되었지만 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 + "\"");
나에게 문제는 파일 이름이 아닌 쉼표에 관한 것이지만 다음과 같습니다.-
Response.ok (streamingOutput, MediaType.APPLICATION_OCTET_STREAM_TYPE) .header ( "content-disposition", " attachment, filename = your_file_name"). build ();
첨부 후 실수로 쉼표를 넣었습니다. 쉼표를 세미콜론으로 바꿔서 해결했습니다.
다음과 같이 파일 이름 주위에 큰 따옴표 쌍을 넣으십시오.
this.Response.AddHeader ( "Content-disposition", $ "attachment; filename = \"{outputFileName} \ "");
헤더의 파일 이름 주위에 큰 따옴표는 MDN 웹 문서 당 표준입니다 . 따옴표를 생략하면 파일 이름의 문자로 인해 발생하는 여러 가지 문제가 발생할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/13578428/duplicate-headers-received-from-server
'Programing' 카테고리의 다른 글
| C ++로 짧은 리터럴을 작성하는 방법 (0) | 2020.07.29 |
|---|---|
| 주어진 수의 요소로 목록 자르기 (0) | 2020.07.29 |
| 안드로이드에 커스텀 라디오 버튼 추가하기 (0) | 2020.07.28 |
| 사용자의 양식 크기 조정을 비활성화하려면 어떻게합니까? (0) | 2020.07.28 |
| Swift Xcode 6에서 버튼 텍스트를 변경하는 방법은 무엇입니까? (0) | 2020.07.28 |