양식이 렌더링 될 때가 아니라 파일 업로드 전에 생성을 지연하여 만료 된 업로드 URL을 해결하려고합니다.양식 제출 전에 업로드 URL 생성
$('#btn-upload').click(function(event){
event.preventDefault();
var uploadUrl = '';
$.get("/generate_upload_url", function(data) {
uploadUrl = data;
});
$('#my-form').attr('action', uploadUrl);
});
그리고 서버 측에 난과 같이 업로드 URL을 생성하는 핸들러가 있습니다 : 내가 찾은 해결책은 이렇게 같은 양식 제출 또는 버튼 클릭 이벤트에서이 작업을 수행하는 것입니다
class GenerateUploadUrlHandler(BaseHandler):
def get(self):
upload_url = blobstore.create_upload_url('/upload')
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write(upload_url)
나는 것을 버튼을 클릭하여 새 업로드 URL을 생성하고 거기에서 POST 요청을하면 어떻게 될지 예상됩니다.하지만 폼의 동작은 지연으로 채워지고 POST 요청은 잘못된 URL에 대해 수행됩니다. 내가 비동기 GET 요청을하고있어 내 폼이 동시에 제출되어 있기 때문에이 될 수도 의심하지만 난 여기 비슷한 예를 참조 정확히 모르겠어요 : http://blog.notdot.net/2010/04/Implementing-a-dropbox-service-with-the-Blobstore-API-part-3-Multiple-upload-support
당신이'에서는 event.preventDefault을 (사용 참조)의 이벤트를 제출 트리거 제출 버튼을 클릭하면 제출됩니다. 클릭 이벤트가 발생 했습니까? – Dola
예, 다른 곳에서 파일 업로드 인터페이스를 통해 양식을 제출하기 때문에'preventDefault()'가 필요했습니다. –