2013-04-29 3 views
6

signed POST을 사용하여 아마존 S3에 파일을 직접 업로드하고 있습니다. 나는 PHP를 사용하여 정책의 서명에 약간의 문제가 있었지만 마침내 해결했고 여기는 sample of code입니다.XHR과 함께 AWS S3 success_action_redirect 정책 사용

이 xhr 요청은 자바 스크립트로 보내며 아마존의 답변을 기다리고 있습니다. 처음에는 success_action_status을 사용하여 201로 설정하여 XML 응답을 받았습니다.

내가하고 싶은 것은 success_action_redirect을 사용하여 내 서버에서 데이터베이스에 레코드를 작성하는 스크립트를 호출하는 것입니다.

왜 데이터베이스에 레코드를 만들 수 있으며이 단계에서 잘못된 것이 발생하면이 시점에서 직접 오류 메시지를 반환 할 수 있습니다. 또한 내 서버에 다른 아약스 요청을 저장합니다.

그래서 일부 매개 변수를 기다리는 스크립트가있는 success_action_redirect에서 http:\\localhost\callback.php까지 지정하려고 시도했습니다.

그러나이 스크립트가 호출되지 않고 xhr.send()의 응답이 비어있는 것처럼 보입니다.

크로스 브라우저 문제라고 생각합니다. 어떻게 든 jsonp를 사용할 수 있는지 궁금합니다. 아이디어가 있으십니까?

UPDATE

분명히 XHR이 작동해야하므로 기본적으로 리디렉션 다음 되나 나는 success_action_redirect 지정 때 처음 error Server responded with 0 code.

를 반환 내가 리디렉션 URL이 너무 내 로컬 서버에 있었기 때문에 그것이 생각 액세스 가능한 서버로 변경했지만 기회는 없습니다.

누가이 오류 메시지를 반환하는지 알 수 있습니다.

+0

나는 그것이 가능하지 않다고 생각하면서 그냥 포기했다. XHR.send()는 리디렉션 URL이 유효한 URL이 아님을 암시하는 빈 응답을 반환합니다. 왜 그런지 모르겠다. 어떤 문서도 찾을 수 없다. ( – maxwell2022

+0

같은 문제가 생기면 어떤 행운 이니? –

+0

Nop, 자바 스크립트 코드에서 클라이언트 측의 콜백을 처리한다. – maxwell2022

답변

0

이 문제가 발생합니다. 아무도 이것에 해결책이없는 것처럼 보입니다 like this 아마도 내가 찾은 최선의 해결책은 this과 같습니다. 유일한 해결 방법은 수동으로 콜백을 실행하는 두 번째 xhr 요청을 포함하는 것 같습니다. 따라서

success_action_status

사용해야한다. 업로드가 성공하면 실제 콜백에 대한 두 번째 요청을 시작할 수 있습니다. 나를 위해 그것은 가능한 유일한 해결책처럼 보입니다.

다른 해결책이 있습니까?