2013-02-18 70 views
2

我想用jquery直接上傳文件到S3。AWS - CORS不能直接上傳文件到S3

我跟着這個步驟來配置CORS設置文件如下測試:

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
    <CORSRule> 
     <AllowedOrigin>*</AllowedOrigin> 
     <AllowedMethod>GET</AllowedMethod> 
     <AllowedMethod>POST</AllowedMethod> 
     <AllowedMethod>PUT</AllowedMethod> 
     <AllowedHeader>*</AllowedHeader> 
    </CORSRule> 
</CORSConfiguration> 

然後我jQuery代碼:

$.ajax({ 
url: this.action, 
type: 'POST', 
dataType: 'xml', 
data: $('form').serialize(), 
crossDomain: true, 
cache: false, 
success: function(data) { 
    window.alert('test'); 
    } 
}); 

如果我直接發佈形式,沒有AJAX,它工作正常......但因爲我想調用上傳完成後的方法,我使用jquery來完成這項工作。 但即使在設置了CORS設置後,我仍然得到錯誤:訪問控制允許源不允許原始xxxx。

的請求報頭:

Accept:application/xml, text/xml, */*; q=0.01 
Cache-Control:no-cache 
Content-Type:application/x-www-form-urlencoded; charset=UTF-8 
Origin:http://localhost:8000 
Pragma:no-cache 
Referer:http://localhost:8000/upload 
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 

請求狀態被取消,類型掛起。

回答