Javascript에서 xmlhttprequest를 사용하여 S3 버킷에 개체를 업로드하라는 PUT 요청을하고 있습니다. CORS가 올바르게 설정되었습니다. 이것은 내가 시도하고 코드입니다.PUT 요청에 대한 DOM 예외 19
var bucketPath = 'http://<bucket-name>.s3.amazon.com/'
var fileName = <name> + ".json";
var uploadPath = bucketPath + fileName.replace(/\s/g,"+");
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
showData();
}
else{
showError();
}
};
xmlhttp.open("PUT",uploadPath,false);
xmlhttp.send(JSON.stringify(jsonObject), replacer);
마지막 코드 줄에 DOM 예외 19가 있습니다. 무엇이 잘못되었는지 확실하지 않습니다. 나는 샘플 테스트 스크립트로 똑같이 시도해 보았고 작동한다. 내 응용 프로그램에 사용하려고 할 때만이 예외가 throw됩니다.
은 크롬 디버거에서 네트워크 탭에서 필자는 옵션으로 방법과 HTTP 요청을 참조하고 출원 입력 할 수 있습니다.전송중인 실제 PUT 요청을 볼 수 없습니다. 아무도 문제가 무엇이고 예외가 의미하는 바를 말할 수 있습니까?
업데이트 : 조심스럽게 요청을 찾고 후에는 jsfiddle 내 응용 프로그램에서 전송되는. JS Fiddle에서 프리 플라이트 HTTP OPTIONS 요청과 실제 PUT 요청을 보낸 2 개의 요청을 봅니다. 이 JS 바이올린에 큰 작동하지만
는 otherhand에 내 응용 프로그램에서 동일한 코드는 프리 플라이트 HTTP 옵션 요청 전송하지만, (200)는 다시 상태가 보류하지 않습니다. 그것이 실패하는 이유입니다.
나는 왜 HTTP OPTIONS 요청에 성공하지 못했는지 모든 아이디어가 있습니다.
CORS가 사용되는 곳이 없습니다 ... – Ian
나는 의미합니다. 이미 웹 사이트에서 PUT 요청을 허용하기 위해 S3 버킷에 대한 CORS 규칙을 설정했습니다. –
하지만 브라우저는이를 알지 못합니다. 다음과 같은 것을 사용해야한다고 생각합니다. http://www.html5rocks.com/en/tutorials/cors/ – Ian