3

클라이언트가 잘못 설정되어 Chrome)은 서버에서 400 Bad Request을받습니다.내용 유형은 나는 다음과 같은 자바 스크립트와 jQuery를 함께 <code>multipart/form-data</code>을 보내려고

------WebKitFormBoundaryEuDIpEU2Ci8VNwNJ 
Content-Disposition: form-data; name="content"; filename="testfile.ext" 
Content-Type: EXT Project Data (64bit) 

------WebKitFormBoundaryEuDIpEU2Ci8VNwNJ 

을 작업 요청은 다음과 같이되어야 Content-Type에서 : Content-Type: application/octet-stream, 서버가 제대로 처리 할 수있는 헤더 요청 페이로드를 검사하는 동안 나는 다음과 같이 일부 브라우저는 파일에 대한 노골적인 내용 유형을 설정 것을 발견했다.

이것이 브라우저의 구성 또는 파일 연결과 관련이 있다고 생각됩니다. 요청의 파일 부분에 대한 컨텐트 유형을 명시 적으로 설정하는 방법이 있습니까?

Firefox 및 Chrome을 사용하는 일부 사용자에게 문제가 발생합니다. 그러나 일부 사용자는 Chrome과 Firefox를 사용하여 성공적으로 업로드 할 수 있습니다. IE는 우리 응용 프로그램에서 지원되지 않습니다.

+0

어떤 클라이언트가 해당 콘텐츠 형식을 제작 했습니까? [IANA] (http://www.iana.org/assignments/media-types/index.html)에 등록 된 콘텐츠 유형 만 사용할 수 있습니다. –

+0

클라이언트의 브라우저가'FormData'를 지원하는 최신의 최신 브라우저입니까? –

+0

우리 고객은 최신 버전의 Chrome과 Firefox를 사용하므로 FormData를 지원해야합니다. – Peders

답변

4

좋아, 우리는이 문제를 파악할 수있었습니다. 클라이언트 시스템에 등록 된 컨텐트 유형이 특정 타사 응용 프로그램이 설치된 일부 클라이언트 시스템에서 실제로 잘못된 형식 인 것으로 나타났습니다.

콘텐츠 형식 브라우저 집합을 프로그래밍 방식으로 변경할 수 없습니다. Michael-O이 지적했듯이 IANA으로 등록 된 콘텐츠 유형은 항상 사용해야합니다. 표준에 대한 link이 있습니다.

이 경우는 불법 콘텐츠 유형을 클라이언트 시스템에 등록한 타사 소프트웨어입니다. 콘텐츠 형식은 공백을 포함 할 수 없으므로 콘텐츠 형식 EXT Project Data은 분명히 불법입니다. 등록 된 콘텐츠 유형을 custom content type으로 변경하여 문제를 해결했습니다. 따라서 현재 사용중인 콘텐츠 유형은 application/x-ext-project-data이며 서버 측에서 올바르게 처리됩니다.