2016-09-22 147 views
0

我使用ajax方法將文件上傳到S3。我的文件成功上傳(獲得204代碼),但仍然(ajax進入失敗的方法,而不是成功)獲取錯誤, 沒有'Access-Control-Allow-Origin'標題出現在請求的資源。AWS S3文件上傳,得到'Access-Control-Allow-Origin'錯誤'

我的跨域政策如下,

<?xml version="1.0" ?> 
<cross-domain-policy> 
<allow-access-from domain="*" /> 
<allow-http-request-headers-from domain="*" headers="*"> 
</allow-http-request-headers-from> 
</cross-domain-policy> 

我的AJAX方法,

$.ajax({ 
    url : url, 
    type: "POST", 
    data: data, 
    contentType: false, 
    processData: false, 
    success: function(){ 
     console.log("success") 
    }, 
    error: function(){ 
     console.log("error") 
    } 
    }) 
+0

如果您直接在瀏覽器中調用圖像URL,是否能夠看到圖像? – user6838959

+0

不,但當我嘗試訪問s3瀏覽器,並複製特定圖像的鏈接並粘貼在瀏覽器中可以看到圖像後。 – Shruti

+0

圖像權限設置是否正確?從aws控制檯登出後複製的網址是否正常工作? – user6838959

回答

0

請仔細閱讀本文件http://docs.aws.amazon.com/AmazonS3/latest/UG/EditingBucketPermissions.html

下面是示例XML,你可以試試。將examplesite.com更改爲您的。右鍵單擊存儲桶並轉到「權限」選項卡,然後單擊「編輯CORS配置」

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