没有通过ajax表单提交获得s3上传的响应

时间:2013-05-07 21:44:41

标签: file-upload amazon-s3 ajaxform

我正在使用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表单的回调。 我现在太困惑了。请帮忙。

1 个答案:

答案 0 :(得分:1)

在提交到S3时应避免使用ajax,因为表单操作不属于您的服务器,这就是从服务器获取成功消息时出现问题的原因。