gpt4 book ai didi

.htaccess - CORS问题请求的资源上不存在 'Access-Control-Allow-Origin' header

转载 作者:行者123 更新时间:2023-12-02 23:52:04 27 4
gpt4 key购买 nike

我的字体位于 static.example.com 这样的子域中,今天,这些字体在 Chrome 和 Firefox 中均未显示,并且开发工具中出现了此错误:

«字体来源' http://static.example.com ' 已被跨源资源共享策略阻止加载:请求的资源上不存在“Access-Control-Allow-Origin” header 。来源'http://example.com ' 因此不允许访问。»

我已经在子域 .htaccess 文件中包含此代码

<IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css)$">
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With"
Header set Access-Control-Allow-Methods "GET, PUT, POST"
</FilesMatch>
</IfModule>

此外,如果我在终端中尝试 curl -I http://static.example.com/fonts/pfcentrosanspro-reg-webfont.eot 我会得到以下响应:

HTTP/1.1 200 OK
Server: nginx
Date: Wed, 27 Aug 2014 17:20:50 GMT
Content-Type: font/eot
Content-Length: 26403
Connection: keep-alive
X-Accel-Version: 0.01
Last-Modified: Mon, 05 Aug 2013 17:49:42 GMT
Accept-Ranges: bytes
Cache-Control: max-age=31536000
Expires: Thu, 27 Aug 2015 17:20:50 GMT
X-Powered-By: PleskLin
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Cache-Control, Pragma, Origin, Authorization, Content-Type, X-Requested-With
Access-Control-Allow-Methods: GET, PUT, POST

但错误仍然存​​在,我已使用以下代码将字体移动到 Amazon S3 CDN 中的存储桶:

<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://example.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
</CORSRule>
</CORSConfiguration>

不幸的是,错误仍然存​​在——字体无法加载并且显示 CORS 错误——我什至修改了 Nginx 配置文件但没有结果!

我做错了什么吗?这让我抓狂。

该网站是一个带有 W3 Total Caché 插件的 Wordpress 博客

感谢您的帮助!

最佳答案

有些浏览器不喜欢这样:

Access-Control-Allow-Origin *

您应该将其设置为原始请求的域。我在类似的问题上挣扎了很多,最后找到了下面的解决方案(PHP,但你会明白的)。

$origin=isset($_SERVER['HTTP_ORIGIN'])?$_SERVER['HTTP_ORIGIN']:$_SERVER['HTTP_HOST'];
header('Access-Control-Allow-Origin: '.$origin);
header('Access-Control-Allow-Methods: POST, OPTIONS, GET, PUT');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Headers: Authorization, X-Requested-With');
header('P3P: CP="NON DSP LAW CUR ADM DEV TAI PSA PSD HIS OUR DEL IND UNI PUR COM NAV INT DEM CNT STA POL HEA PRE LOC IVD SAM IVA OTC"');
header('Access-Control-Max-Age: 1');

此代码将接受来自所有域的所有请求。这可能是不安全的。您可能需要根据接受域的白名单检查请求。

关于.htaccess - CORS问题请求的资源上不存在 'Access-Control-Allow-Origin' header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25533601/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com