CORS否'Access-Control-Allow-Origin'标题 - 但仅限于从磁盘读取时

时间:2018-06-12 16:00:09

标签: javascript google-chrome cors

我们提供来自S3 + Cloudfront的静态css文件 在S3中,我们为

设置了桶的CORS
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
    <AllowedOrigin>*</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>HEAD</AllowedMethod>
    <MaxAgeSeconds>3000</MaxAgeSeconds>
    <AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>

在Cloudfront上,我们列出了标题 起源 而且(在另一个测试中) 访问控制请求报头 AND Access-Control-Request_method

现在问题:  1.在Chrome上当我加载使用CTRL + F5(忽略本地缓存)读取css文件的页面时,它们可以很好地加载而不会出错。 如果我然后刷新同一页面(F5)并从磁盘缓存加载文件,Chrome会给出错误: 请求的资源上不存在“Access-Control-Allow-Origin”标头。

  1. 奇怪的是我看到两个css文件的调用。 1作为样式表,第二个作为xhr,文件大小稍大。是什么导致这个?
  2. 作为参考,使用以下代码完成css上传:

    var fileref=document.createElement("link");
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href", filename);
    
    if (callback) fileref.onload=callback;
    document.getElementsByTagName("head")[0].appendChild(fileref);
    

0 个答案:

没有答案