S3:没有'Access-Control-Allow-Origin'用于AJAX POST

 xuncijins 发布于 2023-01-18 06:04

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

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

我的S3存储桶上有CORS设置:



    
        http://localhost:3000
        GET
        POST
        *
    

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

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

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

XMLHttpRequest cannot load https://s3.amazonaws.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

这对我没有任何意义,因为localhost:3000 IS通过CORS规则被授予访问权限.

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

  $.ajax({
    method: "POST",
    crossDomain: true,
    url: "https://s3.amazonaws.com/",
    data: $(this).serialize() # Contains S3 necessary values
  })

表单包含必要的Amazon S3密钥/ etc的输入.我知道它们有效,因为当我执行正常的HTTP POST时,它会在S3中正确创建资产.我所要做的就是AJAXify这个过程.

我错过了一些明显的东西吗?

使用:Rails 4.1,jquery-file-upload,雾宝石(适用于S3)

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有