【发布时间】:2014-07-30 16:02:14
【问题描述】:
我有一个 WebApi,它启用了 CORS 并且运行良好。
我想添加由 API 提供的静态文件,以补充实际的 WebAPI 方法。
如果您直接访问静态文件,它们就可以很好地提供,但是如果我尝试将它们 ajax 到另一个域中,我会遇到 CORS 问题。
有问题的实际文件是一个静态 .html 文件。
我真的不想创建一个包装器控制器来提供静态文件,因为如果我动态地这样做会带来一堆安全问题。
我目前正在使用自定义 DelegatingHandler(不是 WebAPI2 内置方式)进行 CORS,但不会为静态文件调用此处理程序。
如何在 WebAPI 中拦截静态文件请求并在适用的情况下应用相关的 CORS 标头?
【问题讨论】:
-
您提供的文件的
content-type是什么?您是如何处理的? -
也许 web.config 对你有用? enable-cors.org/server_iis7.html :
<customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> -
@AlexeiLevenkov 看起来可以工作,但我们不想向所有人开放,我们有一个允许客户的动态列表。有什么方法可以从代码中设置吗?
-
@Dalorzo 我想内容类型是 text/html ?它是一个静态文件,所以我认为 IIS 根据扩展名动态定义它
-
据我所知,您无法在 web.config 中真正指定此属性的动态值,也无法使用代码更改静态文件响应,除非您强制所有请求由 ASP 处理。网。
标签: c# asp.net-web-api cors