google-chrome - S3 CORS 无法在 Chrome 中处理 JQuery Ajax 请求

标签 google-chrome jquery amazon-s3 amazon-web-services cors

我有以下 S3 存储桶:http://my-bucket.s3-website-eu-west-1.amazonaws.com/

我已经添加了 CORS 配置,按照 http://docs.amazonwebservices.com/AmazonS3/latest/dev/cors.html :

<CORSConfiguration>
 <CORSRule>
<AllowedHeader>x-requested-with</AllowedHeader>
 <AllowedHeader>*</AllowedHeader>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>POST</AllowedMethod>
    </CORSRule>
 <CORSRule>
   <AllowedOrigin>http://*.test.com</AllowedOrigin>
   <AllowedMethod>POST</AllowedMethod>
 </CORSRule>
</CORSConfiguration>

我使用 jquery 向我的存储桶发出 AJAX Post 请求(注意,来源是 jd.test.com:8000):

$.ajax('http://my-bucket.s3-website-eu-west-1.amazonaws.com/', {
    type: "POST",
    data: $(":hidden", self).serializeArray(),
    files: $(":file", self),
    statusCode: {
      204: function(){
        //do something
      }
    }
});

提出请求后,我的 Chrome 控制台提示:

XMLHttpRequest cannot load http://my-bucket.s3-website-eu-west-1.amazonaws.com/. Origin http://www.jd.test.com:8000 is not allowed by Access-Control-Allow-Origin.

任何有关为什么未发出 POST 请求的帮助将不胜感激。

谢谢!

最佳答案

您的 CORSConfiguration 必须包含端口号,因为端口号是源的一部分,请参阅例如http://en.wikipedia.org/wiki/Same_origin_policy

关于google-chrome - S3 CORS 无法在 Chrome 中处理 JQuery Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267835/

相关文章:

javascript - 使用 jQuery 拖动将链接拖动到浏览器

amazon-s3 - AmazonS3 中的 TransferManager 与 PutRequestObject

java - Spring Boot Amazon AWS S3 存储桶文件下载 - 访问被拒绝

jquery - 如何在 jQuery 中为背景属性设置动画?

laravel - 使用 laravel 将文件存储到 aws s3

angular - 未捕获( promise )未定义

javascript - jQuery beforeunload 事件未在后退按钮上触发

javascript - 在 iframe 中嵌入谷歌地图的粘性光标(webkit 浏览器和 IE)

jQuery 在调整大小时获取 div 的宽度

javascript - javascript调用类成员函数的方法