Ell*_*lly 3 php wordpress cors
我已经用Wordpress重新启动了我的网站。不幸的是,Chrome,Firefox和IE中都没有显示两种字体。我收到以下错误:
从起源' http://w8qb4xj6s.homepage.t-online.de '对'MY WORDPRESS FONTS URL'的字体的访问已被CORS策略阻止:请求中不存在'Access-Control-Allow-Origin'标头资源。因此,不允许访问源“ http://www.obstgut-auf-der-heide.de ”。
这可能是因为我已经将Wordpress安装在一个子目录中,然后通过将index.php复制到根目录来“移动”它的根目录(我希望在请求主页URL时显示新网站)。
为了修复丢失的字体,我尝试将以下代码之一添加到header.php和wp-blog-header.php中:
header("Access-Control-Allow-Origin: *");
Run Code Online (Sandbox Code Playgroud)
要么
Header set Access-Control-Allow-Origin: *
Header set Access-Control-Allow-Headers: Content-Type, Depth,
User-Agent, X-File-Size, X-Requested-With, If-Modified-Since, X-File-
Name, Cache-Control
Header set Access-Control-Allow-Credentials: true
Header set Access-Control-Allow-Methods: OPTIONS, GET, POST
Run Code Online (Sandbox Code Playgroud)
要么
var invocation = new XMLHttpRequest();
var url = 'http://www.obstgut-auf-der-heide.de/';
function callOtherDomain(){
if(invocation) {
invocation.open('GET', url, true);
invocation.withCredentials = true;
invocation.onreadystatechange = handler;
invocation.send();
}
}
Run Code Online (Sandbox Code Playgroud)
我还用home-URL替换了“ *”。没事。我对这件事很陌生,对php和其他东西也不了解。但是也许你们中的一个有任何想法我还能尝试解决这个问题吗?我将非常感谢!!!
谢谢,埃琳娜
小智 6
这里的问题似乎是您以前将字体与WordPress安装在同一域中。现在,字体位于不同的域(可能还有不同的服务器)上,您需要Access-Control-Allow-Origin在处理字体的服务器上设置标头,而不是在服务WordPress的服务器上设置标头。
在Nginx上,它将类似于:
location ~ \.(eot|ttf|otf|woff)$ {
add_header Access-Control-Allow-Origin *;
}
Run Code Online (Sandbox Code Playgroud)
在Apache上.htaccess,与您在上面所做的完全一样,但是您应该将此标头限制为字体文件:
AddType application/vnd.ms-fontobject .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-opentype .otf
AddType application/font-woff .woff
<FilesMatch ".(eot|ttf|otf|woff)">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)