Edge为来自同一来源的字体文件提供Access-Control-Allow-Origin(CSS3116)错误(在双iFrame内)

时间:2017-01-25 17:26:09

标签: html css iframe cors microsoft-edge

我在AWS上托管了一个Web应用程序,在正常访问时工作正常 - 比方说https://example.cloud.net/webApp

另一个网站有一个iFrame,它指向Web应用程序上的一个特定页面,该页面还包含一个iFrame(比方说https://example.cloud.net/webApp/iFrame)。此iFrame指向原始登录但具有一些查询字符串参数(https://example.cloud.net/webApp?view=integration&client=otherWebApp)。

因此,实质上其他Web应用程序在iFrame中具有iFrame。这样做是为了解决一些登录问题,应该假设这不能作为解决方案的一部分进行更改。

除了Edge之外,所有浏览器(包括IE 11)上的“双iFrame”解决方案都能完美运行。在Edge上,我们的一些自托管字体文件未加载,并且以下错误出现在浏览器控制台上:

CSS3116: @font-face failed cross-origin request. No Access-Control-Allow-Origin header.
d0123456.font-abcd.ttf

CSS3116: @font-face failed cross-origin request. No Access-Control-Allow-Origin header.
543211e.font-abcd.woff

然后导致

CSS3120: No fonts available for @font-face rule

和很多遗漏的图标

使用相对URL从css中引用字体文件。例如:

@font-face {
  font-family: 'FontAwesome';
  src: url('/assets/fonts/fontawesome-webfont.eot?v=3.2.1');
  src: url('/assets/fonts/fontawesome-webfont.eot?#iefix&v=3.2.1') format('embedded-opentype'), url('/assets/fonts/fontawesome-webfont.woff?v=3.2.1') format('woff'), url('/assets/fonts/fontawesome-webfont.ttf?v=3.2.1') format('truetype'), url('/assets/fonts/fontawesome-webfont.svg#fontawesomeregular?v=3.2.1') format('svg');
  font-weight: normal;
  font-style: normal;
}

有没有人知道为什么这不起作用,特别是因为它适用于除Edge

之外的所有现代浏览器

0 个答案:

没有答案