2013-03-27 105 views
3

所以,我試圖讓jquery文件上傳與amazon s3一起使用。我可以通過ajax將jquery文件上傳到amazon s3嗎?

實際上,上傳工作正常。文件上傳完全正常。但是,問題是,在請求結束時,我收到以下錯誤。這是在Firefox中。

XML Parsing Error: no element found Location: moz-nullprincipal:{230dddca-13b5-4268-a9d4-4f4dcbbc8a0e} Line Number 1, Column 1: 

我在chrome中根本沒有得到任何錯誤。有沒有人遇到過這個,如果是的話,你有補救嗎?

Amazon 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> 

回答

0

好吧,我不知道你寫你的後端的語言。但是,我通過在策略中包含名爲'success_action_status'的屬性並將其設置爲字符串「201」來解決此問題。我還必須在XHR上傳表單中包含相同的參數給S3。

您可以在這裏關於有效屬性讀了起來:http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html

然而,它說,設置默認的應該只是回到它應該是非常有效的一個空白的響應。我認爲Firefox正在期待XML響應(bug/Firefox?),但它正在接收一個無法解析的空文檔。將「success_action_status」設置爲「201」,返回準備解析的XML文檔。

希望這會有所幫助!

賈斯汀

注意:確保你的「201」是真正的,當它被編碼到你的政策的字符串。我有一個問題w/PHP中,它是默認的整數值,然後導致又一個亞馬遜錯誤,返回403.

相關問題