Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AWS S3 bucket上载上的CORS错误_Javascript_Node.js_Amazon Web Services_Amazon S3_Cors - Fatal编程技术网

Javascript AWS S3 bucket上载上的CORS错误

Javascript AWS S3 bucket上载上的CORS错误,javascript,node.js,amazon-web-services,amazon-s3,cors,Javascript,Node.js,Amazon Web Services,Amazon S3,Cors,我的AWS S3 bucket CORS配置设置如下 <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>*</AllowedOrigin> <AllowedOrigin>h

我的AWS S3 bucket CORS配置设置如下

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedOrigin>http://localhost:5000</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

但chrome和firefox都抛出了一个访问控制Allow Origin header not set错误。特别是在firefox中:“(原因:CORS标头“Access Control Allow Origin”丢失)。”

Access Control Allow标头不允许使用通配符。它必须包含实际的头名称


查看网络选项卡中的飞行前请求。
Access Control request Headers
header中的值必须包含为
AllowedHeader

您必须从服务器上传,而不是从我所了解的CORS客户端上传。从我读过的文章中,您可以直接上传到S3 bucket。我在服务器上运行node,所以希望避免传递上传…你是对的,尽管我只使用了角度模块(我现在记得了)。我的错。正如OliverJ90所提到的,我直接上传到一个存储桶没有问题。正如克里斯托弗·马歇尔(Christopher Marshall)所说,“本地主机”是CORS的有效来源吗?这似乎有点毫无意义,如果不是,我也不会感到惊讶。您可以尝试使用
http://lvh.me:5000/
这是一个测试域,解析为127.0.0.1,就像
localhost
,同时看起来是一个真实的域名,看看它是否能让浏览器更快乐。你确定吗<代码>*
function upload_file(file, signed_request, url){
    var xhr = new XMLHttpRequest();
    xhr.open("PUT", signed_request);
    xhr.setRequestHeader('x-amz-acl', 'public-read');
    xhr.onload = function() {
        if (xhr.status === 200) {
            $('#photo').css('background-image', "url('"+url+"')");
        }
    };
    xhr.onerror = function(err) {
        alert("Could not upload file.", err);
    };
    xhr.send(file);
}