2013-03-27 104 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.

相关问题