AWS S3文件上传,无'Access-Control-Allow-Origin'错误

时间:2016-09-22 06:21:33

标签: javascript jquery ruby-on-rails ajax amazon-s3

我使用ajax方法将文件上传到S3。我的文件已成功上传(获得204代码),但仍然(ajax进入失败方法而非成功)获取错误, 请求的资源上没有“Access-Control-Allow-Origin”标头。

我的跨域政策如下,

<?xml version="1.0" ?>
<cross-domain-policy>
<allow-access-from domain="*" />
<allow-http-request-headers-from domain="*" headers="*">
</allow-http-request-headers-from>
</cross-domain-policy>

我的ajax方法,

$.ajax({
    url : url,
    type: "POST",
    data: data,
    contentType: false,
    processData: false,
    success: function(){
      console.log("success")
    },
    error: function(){
      console.log("error")
    }
  })

1 个答案:

答案 0 :(得分:0)

请阅读此文档http://docs.aws.amazon.com/AmazonS3/latest/UG/EditingBucketPermissions.html

以下是您可以尝试的示例xml。将examplesite.com更改为您的。右键单击存储桶并转到&#34;权限&#34;选项卡并单击&#34;编辑CORS配置&#34;

<?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>
    <CORSRule>
        <AllowedOrigin>http://*.examplesite.com</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
    </CORSRule>
</CORSConfiguration>