3

所以,我试图让 jquery 文件上传与亚马逊 s3 一起工作。

实际上,上传工作正常。文件上传非常好。但是,问题是,在请求结束时,我收到以下错误。这是在Firefox中。

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

我在 chrome 中根本没有收到错误。有没有人遇到过这种情况,如果有,你有没有补救过?

亚马逊 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>
4

1 回答 1

0

好的,我不确定您正在编写哪种语言的后端。但是,我通过包含一个名为“success_action_status”的属性并将其设置为策略中的字符串“201”来解决此问题。我还必须在到 S3 的 XHR 上传表单中包含相同的参数。

您可以在此处阅读有关有效属性的信息:http: //docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html

但是,它说设置默认值应该只返回一个应该完全有效的空白响应。我认为 Firefox 期待 XML 响应(带有 Firefox 的错误?),但收到一个无法解析的空文档。将“success_action_status”设置为“201”,返回一个准备解析的 XML 文档。

希望这可以帮助!

贾斯汀

注意:确保您的“201”在被编码到您的策略时确实是一个字符串。我遇到了一个 PHP 问题,它将值默认为整数,然后导致另一个亚马逊错误返回 403。

于 2015-01-21T14:57:36.153 回答