2014-02-21 53 views
5

我正在使用AWS S3訪問我的HTML5應用程序中的文件。以下代碼在我的筆記本電腦上正常工作,但在移動設備(iphone)上失敗。任何幫助是極大的讚賞。從AWS S3存儲桶下載文件時,如何避免「網絡錯誤:網絡故障」?

AWS.config.region = 'us-west-2'; 
var bucket = new AWS.S3({params: {Bucket: 'mybucket'}}); 
bucket.getObject({Key: myfile}, function (error, data) { 

if (error != null) { 
    alert("Failed to retrieve " + myfile + " :" + error); 
} else { 
    //alert("Loaded " + data.ContentLength + " bytes"); 
    localStorage[myfile] = data.Body.toString(); 
    // do something with data.body 

}}); 

我得到的錯誤是: 「HTTP //本地主機 無法檢索foo.json:NetworkingError:網絡故障」

我有以下CORS配置這個桶

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
<CORSRule> 
    <AllowedOrigin>*</AllowedOrigin> 
    <AllowedMethod>GET</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
</CORSRule> 

回答

19

我能夠通過aws技術支持來解決這個問題。問題已通過以下CORSconfig解決:

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

您是救星! – twb

+2

請將此標記爲正確答案,因爲它是;) – SomethingOn

+0

這是在更改後中間階段得到解決,還是需要一段時間? – jmendiola