为什么这些字体不会跨服务器加载?

时间:2014-08-08 16:47:52

标签: css fonts request cross-domain webfonts

我在一台服务器(一个免费的网络主机)上有一个演示页面,它通过Google Web Fonts以及同一台服务器上的字体文件夹加载字体。它通过CSS中的非相对URL加载本地字体。 Google Fonts和本地字体都可以在该服务器上正常运行。

但是,当我尝试在另一台服务器(也是一个免费的Web主机进行测试)上加载页面时,字体不会加载 - 它们只是显示为0KB请求,完成时没有错误。

这是来自demo on the first server的请求: enter image description here

这是来自same page on another serverenter image description here

为什么会这样?

编辑:刚刚在控制台中发现了这些错误:

  

阻止跨源请求:同源策略禁止读取   远程资源在   http://iansan5653.host22.com/fonts/socicon-webfont.woff。这可以   通过将资源移动到同一域或启用CORS来修复。

     

socicon-webfont.woff可下载字体:下载失败(font-family:   " Socicon"风格:正常体重:正常拉伸:正常src指数:1):不好   不允许URI或跨站点访问源:   http://iansan5653.host22.com/fonts/socicon-webfont.woff

如果这与跨域请求有关,那么Google Fonts如何加载跨域?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

"同源政策"阻止从第一台服务器加载字体的请求。您可以阅读更多关于"同源策略" here

您可以采用以下两种方法之一解决此问题:

  1. 简单的方法是将字体从host22.com服务器移动到第二台服务器(当前服务器),即atwebpages.com。更新代码以从同一服务器加载。这将解决您的问题。

  2. 另一种方法是要求iansan5653.host22.com上的服务器输出以下标题:

    Access-Control-Allow-Origin: http://iansan5653.atwebpages.com

    iansan5653.atwebpages.com是您当前的服务器。这将允许您的第二台服务器从您的第一台服务器请求资源。您可以向您的托管服务提供商咨询是否以及如何启用此类标头输出。