2013-05-07 66 views
1

我使用ajaxform將圖像上傳到s3。圖像被上傳到S3,但我無法獲得S3服務器的響應。我需要回復通知用戶上傳已完成。 據我所知,ajax表單jquery插件工作正常,因爲如果我通過另一種形式替換這個表單,其中的動作url是與應用程序相同的服務器,而不是s3,它會成功(但我無法做到如果我必須將圖像上傳到s3)。 我已經嘗試過除成功之外的其他事情,比如完成,錯誤,失敗等等,但它沒有任何意義。 這裏的是代碼的相關部分:沒有通過ajax表單提交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表單的回調。 太困惑了,我現在。請幫忙。

回答

1

由於表單動作不屬於您的服務器,因此在提交給S3時應避免使用ajax,這就是爲什麼在從服務器獲取成功消息時出現問題的原因。

+2

是的..即使我認爲如此 – 2013-05-21 22:14:07

+0

S3支持CORS,它允許你進行跨域調用。 Ajax上傳是可能的! – 2013-11-18 15:52:14