我正在使用ajaxform将图片上传到s3。图像上传到s3但我无法从S3服务器获得响应。我需要响应来通知用户上传完成。 根据我的说法,ajax表单jquery插件工作正常,因为如果我用另一个表单替换这个表单,其中action url与应用程序的服务器相同而不是s3,它的成功(但我不能这样做)如果我必须将图像上传到s3)。 我尝试过除了成功之外的其他事件,如完整,错误,失败等等。但它无处可去。 这是代码的相关部分:
<script>
function submitMyForm(){
$("#myForm").ajaxForm({
success : function(result){
alert(result);
}
}).submit();
}
</script>
<form id="myForm" action="https://my-bucket-name.s3.amazonaws.com/" method="post" enctype="multipart/form-data">
<input type="hidden" name="key" value="${filename}">
<input type="hidden" name="AWSAccessKeyId" value="my-access-key-id">
<input type="hidden" name="acl" value="private">
<input type="hidden" name="success_action_redirect" value="">
<input type="hidden" name="policy" value="my_policy">
<input type="hidden" name="signature" value="my_signature">
<input type="hidden" name="Content-Type" value="image/jpeg">
File to upload to S3:
<input name="file" type="file">
</form>
<button onclick="submitMyForm()">Submit</button>
在控制台中我得到了这个: [jquery.form] state =完成。 我可以以某种方式使用它来捕获ajax表单的回调。 我现在太困惑了。请帮忙。
答案 0 :(得分:1)
在提交到S3时应避免使用ajax,因为表单操作不属于您的服务器,这就是从服务器获取成功消息时出现问题的原因。