服务包含来自MVC / IIS Web应用程序的子域

时间:2014-10-04 15:32:09

标签: c# asp.net-mvc cors

我在tumblr上为我的网站托管博客:

blog.withoomph.com

我在博客上修改了主题,我想使用自己在主站点上使用的字体。我试图从以下字体获取字体:

beta.withoomph.com

但是,当页面尝试获取字体时,我收到CORS错误。这种情况最近才刚刚开始,因为它们可以毫无问题地使用。

有没有办法可以设置IIS或我的MVC应用程序来将这些字体服务到子域?

修改

对不起,我应该知道的比这更好。以下是一些更多信息:

这是获取网址的CSS:

@font-face {
    font-family: 'avantgarde';
    src: url('http://beta.withoomph.com/content/fonts/avant_garde.eot');
    src: url('http://beta.withoomph.com/content/fonts/avant_garde.eot?#iefix') format('embedded-opentype'),
         url('http://beta.withoomph.com/content/fonts/avant_garde.woff') format('woff'),
         url('http://beta.withoomph.com/content/fonts/avant_garde.ttf') format('truetype'),
         url('http://beta.withoomph.com/content/fonts/avant_garde.svg#avantgarde_bk_btdemi') format('svg');
    font-weight: normal;
    font-style: normal;
}

当尝试获取字体时,这是开发控制台中的错误:

  

来自原点的字体' http://beta.withoomph.com'已被封锁   通过跨源资源共享策略加载:否   '访问控制允许来源'标题出现在请求的上   资源。起源' http://blog.withoomph.com'因此是不允许的   访问。

1 个答案:

答案 0 :(得分:8)

出于安全原因,浏览器禁止调用驻留在当前源之外的资源,因此您必须启用跨源资源共享。将其添加到web.config

<configuration>
 <system.webServer>
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
     </customHeaders>
   </httpProtocol>
 </system.webServer>
</configuration>

有关详细信息,请参阅this link