1

我正在使用 ajaxform 将图像上传到 s3。图像正在上传到 s3,但我无法从 S3 服务器获得响应。我需要响应来通知用户上传完成。据我说,ajax 表单 jquery 插件工作正常,因为如果我用另一个表单替换这个表单,其中操作 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 = complete。我可以以某种方式使用它来捕获 ajax 表单的回调。我现在太困惑了。请帮忙。

4

1 回答 1

1

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

于 2013-05-21T22:01:17.107 回答