tl; dr : DotCloud에서 실행되는 nginx의 "411 Length Required"오류를 해결하려면 어떻게해야합니까?CORS on DotCloud, 411 Length required
DotCloud 플랫폼에서 Python 서비스로 배포 된 CORS 지원 API가 있습니다. 내 자바 스크립트 클라이언트가 액세스하려고하면 브라우저가 OPTIONS 요청으로 시작하지만 411으로 돌아옵니다.
DotCloud의 nginx는 비어있는 본문이있는 HTTP 요청을 좋아하지 않습니다. ": 0 콘텐츠 길이를"헤더를, 또는 chunkin
모듈을 사용하려고 노력하지만, 나도 할 수 없습니다 : 내가 추가 할 제안을 본 적이 나는 브라우저의 옵션 요청에 대한 추가 HTTP 요청 헤더를 제어하지 않는
- 을
- DotCloud에 타사 nginx 모듈을 설치할 수 있다고 생각하지 않습니다. 비록 내가 할 수있다하더라도 요청에 "Transfer-encoding : chunked"헤더가 없어 도움이되지 않을 수도 있습니다.
이 문제를 해결하는 방법은 무엇입니까?
업데이트 : nginx.conf
에 다음 퍼팅은
내 즉각적인 문제를 해결합니다. chunkin과 마찬가지로 411 오류를 트랩하고 요청 방법이 OPTIONS
인 경우 미리 준비된 응답을 반환합니다. 그것을 가로 질러왔다 in this repo. 내가 파이썬 코드가 아닙니다 nginx를 구성에서 이러한 응답을 처리하고 싶은대로
error_page 411 = @cors;
location @cors {
if ($request_method = OPTIONS) {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'Content-Type, Authorization, ...';
add_header Access-Control-Max-Age '1800';
add_header Content-Length 0;
add_header Content-Type text/plain;
return 200;
}
return 411;
}
그것은 이상적인 아니에요. DELETE 및 HEAD 요청으로 문제가 발생할 것으로 예상됩니다. 요청 본문이 없습니다.
:
다음은 이러한 구성에 대한
dotcloud.yml
의 예입니다. 그것은 단순히 411 오류를 처리하고 필요한 것입니다. –불행히도 chunkin은 dotcloud에서 사용할 수 없습니다. –
본 적이 있습니까? https://github.com/dotcloud/nginx-on-dotcloud –