S3:AJAX POST没有“访问控制允许源”
发布时间:2020-12-16 03:09:03 所属栏目:百科 来源:网络整理
导读:这个问题带给我一点坚果。我试图通过AJAX POST将文件上传到S3存储区。 我有所有的凭据正确,因为当我做正常的HTTP POSTs它创建的资源在S3桶只是罚款。但是我真的想使用进度条一次上传多个文件,因此我需要AJAX。 我的S3桶上有CORS设置: ?xml version="1.0"
这个问题带给我一点坚果。我试图通过AJAX POST将文件上传到S3存储区。
我有所有的凭据正确,因为当我做正常的HTTP POSTs它创建的资源在S3桶只是罚款。但是我真的想使用进度条一次上传多个文件,因此我需要AJAX。 我的S3桶上有CORS设置: <?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提交文件时,都会收到以下错误信息: 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代码片段: $.ajax({ method: "POST",crossDomain: true,url: "https://s3.amazonaws.com/<BUCKET>",data: $(this).serialize() # Contains S3 necessary values }) 该表单有必要的Amazon S3键/ etc输入。我知道他们工作,因为当我正常的HTTP POSTs它在S3中正确创建资产。所有我想要做的是AJAXify的过程。 我在这里缺少一些明显的东西吗? 使用:Rails 4.1,jquery-file-upload,fog gem(for S3)
你可以尝试改变
<?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> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |