在启用cors的情况下,我将从cdn加载所有项目的资源,但是html导入在第一个页面加载时失败(然后在加载之后成功)。
link(rel="import" id="htmlImports" href=`components.html` async)产生以下错误:
s3 amazon No 'Access-Control-Allow-Origin' header is present on the requested resource.我搜索了几乎所有相关页面,并尝试了一百万种解决方案,例如:
<?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule> <AllowedOrigin>http://*</AllowedOrigin> <AllowedOrigin>https://*</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <ExposeHeader>ETAG</ExposeHeader> <ExposeHeader>Accept-Ranges</ExposeHeader> <ExposeHeader>Content-Range</ExposeHeader> <ExposeHeader>Content-Encoding</ExposeHeader> <ExposeHeader>Content-Length</ExposeHeader> <ExposeHeader>Access-Control-Allow-Origin</ExposeHeader> <AllowedHeader>range</AllowedHeader> <AllowedHeader>*</AllowedHeader> </CORSRule> </CORSConfiguration>
发布于 2016-09-06 23:08:24
解决方案
我问题的解决方案是将crossorigin="anonymous"添加到导入链接中。
link(rel="import", id="htmlImports", href=`components.html`,
async, crossorigin="anonymous")默认情况下,s3桶发送一个Access-Control-Allow-Credentials: true头,从而通过添加crossorigin="anonymous"
元素的跨源CORS请求将设置省略凭据标志。
这将使html导入请求每次都能工作。
备注
如果有人有其他选择或可以详细解释行为,请做!
https://stackoverflow.com/questions/39359051
复制相似问题