ASP.NET CORS阻止字体请求

Adi*_*ing 6 asp.net cors asp.net-web-api

我构建了一个ASP.NET Web API服务并在该服务中启用了CORS.此服务用于提供报告模板资源(html, image, css, font).Web客户端根据下载的模板加载模板并显示报告.

因此,给定服务点:http://templates.domain.com,并尝试(REST, Image, Font)从Web应用程序(http://client.domain.com)访问服务,然后Web客户端应用程序将加载:

  • http://templates.domain.com/templates/:templateName
  • http://templates.domain.com/templates/:templateName/css/style.css
  • http://templates.domain.com/templates/:templateName/image/header.jpg
  • http://templates.domain.com/templates/:templateName/font/test.ttf

在上面,REST API,CSS和服务中的图像运行良好,但字体被阻止/失败.

来自" http:// localhost:49350 "的字体已被跨源资源共享策略阻止加载:请求的资源上不存在"Access-Control-Allow-Origin"标头.原点'null'

到目前为止,我已经尝试了下面的解决方案,但字体仍然被阻止.

  1. Microsoft.Owin.Cors:

    app.UseCors(CorsOptions.AllowAll);

  2. Microsoft.AspNet.WebApi.Cors:

    var cors = new EnableCorsAttribute("*", "*", "*"); config.EnableCors(cors);

Oli*_*ver 7

您使用的是OWIN还是WebAPI?

对于AspNet WebAPI,以下内容将允许所有内容:

<system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
Run Code Online (Sandbox Code Playgroud)

重要的是要指出允许"*"是潜在的安全漏洞,因为您说任何人都可以调用这些方法.