我已经使用WebApi获得了C#.NET MVC解决方案。 现在我已经设置了Owin和CORS(用于基于令牌的认证),并且所有工作都按预期工作。ASP.NET将CORS头文件添加到ashx文件处理程序
我也有一个文件处理程序:File.ashx配置和处理程序完美地在本地工作。 的问题是,当我发送到处理程序的请求从其他产地(通过AJAX客户端调用)我得到folliwing错误:
的XMLHttpRequest无法加载http://localhost:1234/Handlers/File.ashx。对预检请求的响应不会通过访问控制检查:请求的资源上不存在“访问控制 - 允许来源”标头。因此,'http://localhost:1234'不允许访问。该响应具有HTTP状态代码405.
现在,当浏览器发送OPTIONS请求时,显然访问控制标题不会返回给客户端。
我看了下面的链接: Header not being set for OPTIONS Ajax request这表明我通过处理程序本身返回适当的头文件。
但是在调试时我注意到ProcessRequest
方法没有被击中。
if (context.Request.HttpMethod == "OPTIONS")
{
context.Response.AddHeader("Access-Control-Allow-Origin", "*");
context.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
context.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
}
我的问题是我在哪里控制/拦截OPTIONS请求并返回适当的头文件?
请注意,我只想在WebApi(已在工作)和我的文件处理程序上禁用CORS。