[英]Enable CORS for static resources in ASP .NET MVC?
我在Web API和ASP .NET MVC中的通用控制器中找到了大量關於CORS的資源。
但是,我的情況是,我希望特定文件夾中的所有靜態資源(CSS和JS文件)也可以通過AJAX下載。 換句話說,為這些資源或該文件夾啟用CORS。
我怎么能做到這一點? 我沒有發現類似的問題。 它們都與Web API或通用控制器相關。
示例改編自演練:創建和注冊自定義HTTP模塊 。 這應該將標頭添加到所有.js
和.css
請求中。
using System;
using System.Web;
public class HelloWorldModule : IHttpModule
{
public HelloWorldModule()
{
}
public String ModuleName
{
get { return "HelloWorldModule"; }
}
// In the Init function, register for HttpApplication
// events by adding your handlers.
public void Init(HttpApplication application)
{
application.BeginRequest +=
(new EventHandler(this.Application_BeginRequest));
}
private void Application_BeginRequest(Object source,
EventArgs e)
{
// Create HttpApplication and HttpContext objects to access
// request and response properties.
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
string filePath = context.Request.FilePath;
string fileExtension =
VirtualPathUtility.GetExtension(filePath);
if (fileExtension.Equals(".css") || fileExtension.Equals(".js"))
{
context.Response.AddHeader("Access-Control-Allow-Origin", "*");
}
}
public void Dispose() { }
}
<configuration>
<system.web>
<httpModules>
<add name="HelloWorldModule" type="HelloWorldModule"/>
</httpModules>
</system.web>
</configuration>
<configuration>
<system.webServer>
<modules>
<add name="HelloWorldModule" type="HelloWorldModule"/>
</modules>
</system.webServer>
</configuration>
在運行MVC時,請確保更改根目錄中的那個(而不是Views
文件夾)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.