2015-09-11 15 views
6

Zbudowałem usługę ASP.NET Web API i włączono CORS w tej usłudze. Ta usługa służy do udostępniania zasobów szablonów raportów (html, image, css, font). Klient WWW ładuje szablon i wyświetla raport na podstawie pobranego szablonu.Blokowanie żądania czcionki ASP.NET CORS

więc, biorąc pod uwagę enpoint serwisowy: http://templates.domain.com, i próbuję uzyskać dostęp do usługi (REST, Image, Font) z aplikacji internetowej (http://client.domain.com), a następnie aplikacja klienta WWW będzie ładować:

  • 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

W powyższym REST API, CSS i obrazy z usługi działa dobrze, ale czcionka jest zablokowana/nie powiodła się.

czcionki z pochodzenia 'http://localhost:49350' został zablokowany załadunku polityka Cross-Origin Resource Sharing: No 'Access-Control-Allow-Origin' header jest obecny na wymaganym zasobu. Origin 'null'

Do tej pory próbowałem poniższych rozwiązań, ale czcionka jest nadal blokowana.

  1. Microsoft.Owin.Cors:

    app.UseCors(CorsOptions.AllowAll);

  2. Microsoft.AspNet.WebApi.Cors:

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

+1

Czy masz rozszerzenia czcionek zdefiniowane w pliku web.config frontend? Dostaję 404 (nie błąd CORS), jeśli ich nie zdefiniuję, więc może to nie jest problem. na przykład

+0

@S. Baggy nr 404, tylko błąd CORS –

+0

Czy możesz umieścić nagłówki żądania/odpowiedzi? – swestner

Odpowiedz

7

Używasz OWIN lub WebAPI?

Dla aspnet WebAPI następujące pozwoliłoby wszystkim poprzez:

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

Ważne jest, aby podkreślić, że zezwolenie „*” jest potencjalna luka w zabezpieczeniach, jak mówisz, każdy z anywere może powoływać tych metod.