【问题标题】:Not getting the response of s3 upload through ajax form submission通过ajax表单提交没有得到s3上传的响应
【发布时间】:2013-05-07 21:44:41
【问题描述】:

我正在使用 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] 状态 = 完成。 我可以以某种方式使用它来捕获 ajax 表单的回调。 我现在太困惑了。请帮忙。

【问题讨论】:

    标签: file-upload amazon-s3 ajaxform


    【解决方案1】:

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

    【讨论】:

    • S3 支持 CORS,可让您进行跨域调用。可以进行 Ajax 上传!
    猜你喜欢
    • 2011-03-11
    • 2013-10-28
    • 2020-08-03
    • 2017-05-10
    • 1970-01-01
    • 2012-09-22
    • 2020-06-07
    • 2016-06-21
    • 1970-01-01
    相关资源
    最近更新 更多