Web API 2 CORS IIS 快速调试和无 Access-Control-Allow-Origin header
Web API 2 CORS IIS Express Debug and No Access-Control-Allow-Origin header
清空web.api项目,安装Microsoft.aspnet.webapi.cors 5.2.3,添加
config.EnableCors();
到 webapiconfig。制作控制器和动作
public class HomeController : ApiController
{
[EnableCors("*" , "*" , "*")]
public async Task<string> Get()
{
return await Task.FromResult("omg");
}
}
调试应用程序并加载 fiddler 并向 http://localhost:61939/api/Home
发出请求
不存在 CORS header。 web.config 包含:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
我错过了什么?为什么这不会在对我的 Get 方法的所有请求中插入 Access-Control-Allow-Origin header?
此外,在 web.config 中定义 CORS 的答案也不是答案......在某些时候我将需要添加来源检查,甚至可能检查 HTTP 方法,例如:
if(requestContext.HttpMethod == "POST" && (origin == "https://someplace.com" || origin == "http://localhost"))
清空web.api项目,安装Microsoft.aspnet.webapi.cors 5.2.3,添加
config.EnableCors();
到 webapiconfig。制作控制器和动作
public class HomeController : ApiController
{
[EnableCors("*" , "*" , "*")]
public async Task<string> Get()
{
return await Task.FromResult("omg");
}
}
调试应用程序并加载 fiddler 并向 http://localhost:61939/api/Home
发出请求不存在 CORS header。 web.config 包含:
<system.webServer>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
我错过了什么?为什么这不会在对我的 Get 方法的所有请求中插入 Access-Control-Allow-Origin header?
此外,在 web.config 中定义 CORS 的答案也不是答案......在某些时候我将需要添加来源检查,甚至可能检查 HTTP 方法,例如:
if(requestContext.HttpMethod == "POST" && (origin == "https://someplace.com" || origin == "http://localhost"))