ASP.NET WebForm的访问控制允许来源(Access-Control-Allow-Origin)是用于跨域资源共享(CORS)的HTTP响应标头之一。它用于限制可以访问Web应用程序的来源。
如果ASP.NET WebForm的访问控制允许来源不起作用,可能是因为没有正确配置或处理CORS。以下是一些可能的解决方法:
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
}
这段代码将在每个请求的开始处添加访问控制允许来源标头,并处理OPTIONS请求以允许特定的HTTP方法和标头。
如果您只想允许特定的来源,可以修改代码中的HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
为HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "https://example.com");
,将https://example.com
替换为您希望允许的来源URL。
确保Web应用程序的配置文件(例如web.config)中没有设置任何额外的CORS限制。以下是一个示例配置文件片段,其中未设置任何CORS限制:
请注意,将Access-Control-Allow-Origin
标头设置为通配符*
可能会带来安全风险,因为它允许来自任何来源的请求。最好将其设置为特定的来源URL以增加安全性。