首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >S3: AJAX帖子没有‘访问-控制-允许-来源’

S3: AJAX帖子没有‘访问-控制-允许-来源’
EN

Stack Overflow用户
提问于 2014-05-02 01:23:33
回答 2查看 3.6K关注 0票数 15

这个问题让我有点抓狂。我正在尝试通过AJAX POST将文件上传到S3存储桶。

我的所有凭证都是正确的,因为当我执行普通的HTTP POSTs时,它会在S3存储桶中创建资源。但我真的想上传多个文件一次与进度条,因此我需要AJAX。

我在我的S3存储桶上设置了CORS:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>http://localhost:3000</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

现在,我只想让它在我的开发环境(localhost:3000,使用标准的Rails 4.1)中工作。

根据我的理解,上面的CORS规则应该允许从localhost:3000到S3存储桶的AJAX请求。

但是,每次我通过AJAX提交文件时,我都会收到以下错误:

代码语言:javascript
复制
XMLHttpRequest cannot load https://s3.amazonaws.com/<BUCKET>. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

这对我来说没有任何意义,因为localhost:3000是通过CORS规则授予访问权限的。

我还提供了用于提交表单的JS的一个片段:

代码语言:javascript
复制
  $.ajax({
    method: "POST",
    crossDomain: true,
    url: "https://s3.amazonaws.com/<BUCKET>",
    data: $(this).serialize() # Contains S3 necessary values
  })

该表单包含必需的亚马逊S3密钥等输入。我知道它们是有效的,因为当我执行普通的HTTP POSTs时,它会在S3中正确地创建资产。我所要做的就是AJAXify这个过程。

我是不是漏掉了什么明显的东西?

使用:Rails4.1,jquery-file-upload,fog gem (用于S3)

EN

回答 2

Stack Overflow用户

发布于 2014-12-17 16:51:49

您可以尝试通过更改

代码语言:javascript
复制
<?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>
</CORSConfiguration>
票数 1
EN

Stack Overflow用户

发布于 2015-06-03 20:59:43

你的问题似乎与我的问题非常相似,也没有得到正确(准确)的回答,而且似乎是一个与浏览器限制有关的问题,而不是它背后的实际传输技术。

这里有一个链接,指向我最初的问题和我在SO上收到的答案:Why Doesn't Microsoft Skydrive Download Multiple Files via API?

希望这能为你的问题提供一些洞察力,而不仅仅是噪音。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23412928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档