2014-09-01 31 views
1

我一直在尝试抛出一个基于S3的客户端上传表单基于我发现的几个例子,但我似乎无法解决我的错误得到的OPTIONS请求:客户端上传到S3。没有'访问控制允许来源'标头

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

从我的理解,如果我没有包括在我的请求Origin标,但是这应该被触发...

Host:s3.amazonaws.com 
Origin:http://localhost:3000 

任何人都有一个想法,为什么标题可能没有包含在响应中?下面是一些更多的细节 CORS配置

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
<CORSRule> 
    <AllowedOrigin>http://localhost:3000</AllowedOrigin> 
    <AllowedMethod>POST</AllowedMethod> 
    <AllowedMethod>GET</AllowedMethod> 
    <MaxAgeSeconds>3000</MaxAgeSeconds> 
    <AllowedHeader>*</AllowedHeader> 
</CORSRule> 
</CORSConfiguration> 

的CoffeeScript

jQuery -> 
$('#fileupload').fileupload 


add: (e, data) -> 
    types = /(\.|\/)(gif|jpe?g|png)$/i 
    file = data.files[0] 
    if types.test(file.type) || types.test(file.name) 
    data.context = $($.tmpl("template-upload", file)) 
    $('#fileupload').append(data.context) 
    data.submit() 
    else 
    alert("#{file.name} is not a gif, jpeg, or png image file") 

progress: (e, data) -> 
    if data.context 
    progress = parseInt(data.loaded/data.total * 100, 10) 
    data.context.find('.bar').css('width', progress + '%') 

done: (e, data) -> 
    file = data.files[0] 
    domain = $('#fileupload').attr('action') 
    path = $('#fileupload input[name=key]').val().replace('${filename}', file.name) 
    to = $('#fileupload').data('post') 
    content = {} 
    content[$('#fileupload').data('as')] = domain + path 
    $.post(to, content) 
    data.context.remove() if data.context # remove progress bar 

fail: (e, data) -> 
    alert("#{data.files[0].name} failed to upload.") 
    console.log("Upload failed:") 
    console.log(data) 

回答

1

韦尔普,我傻。正在研究错误的水桶!

+0

大声笑。我也犯了同样的错误。 – Musaffa 2015-01-31 21:14:37

+0

你们能够实现它的地方?我一直在尝试很多,但仍然出现错误。 – 2015-07-21 07:22:25

相关问题