2015-09-11 20 views
6

Tôi đã xây dựng dịch vụ ASP.NET Web API và bật CORS trong dịch vụ đó. Dịch vụ này được sử dụng để phân phối tài nguyên mẫu báo cáo (html, image, css, font). Ứng dụng web tải mẫu và hiển thị báo cáo dựa trên mẫu đã tải xuống.ASP.NET CORS chặn yêu cầu phông chữ

Vì vậy, do enpoint dịch vụ: http://templates.domain.com, và tôi cố gắng truy cập vào các dịch vụ (REST, Image, Font) từ một ứng dụng web (http://client.domain.com), sau đó ứng dụng client web sẽ được tải:

  • 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

Ở trên, API REST, CSS và hình ảnh từ dịch vụ hoạt động tốt, nhưng phông chữ bị chặn/không thành công.

Font từ nguồn gốc 'http://localhost:49350' đã bị chặn từ tải bởi chính sách Cross-Origin Resource Sharing: Không 'Access-Control-Allow-Origin' đầu có mặt trên yêu cầu tài nguyên. Origin 'null'

Cho đến nay, tôi đã thử các giải pháp bên dưới, nhưng phông chữ vẫn bị chặn.

  1. Microsoft.Owin.Cors:

    app.UseCors(CorsOptions.AllowAll);

  2. Microsoft.AspNet.WebApi.Cors:

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

+1

Bạn có tiện ích mở rộng phông chữ được xác định trong tệp web.config của giao diện người dùng không? Tôi nhận được một 404 (không lỗi CORS) nếu tôi không xác định chúng, vì vậy có lẽ đây không phải là vấn đề. ví dụ.

+0

@S. Baggy no 404, chỉ lỗi CORS –

+0

Bạn có thể gửi yêu cầu/tiêu đề phản hồi không? – swestner

Trả lời

7

Bạn có sử dụng OWIN hoặc WebAPI?

Đối với một ASPNET WebAPI sau đây sẽ cho phép tất cả mọi thứ thông qua:

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

Điều quan trọng là chỉ ra rằng việc cho phép "*" là tiềm năng lỗ hổng bảo mật như bạn đang nói đến bất cứ ai từ anywere có thể gọi các phương pháp này.

Các vấn đề liên quan