【发布时间】:2021-04-21 04:03:20
【问题描述】:
我根据以下片段创建了一个 WebAPI 2(完整框架 v4.7.x):
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class MyTestController : ApiController
{
public async Task<IHttpActionResult> GETSearchLatest20()
{
//etc...
}
}
,其中 CORS 通过使用EnableCors 属性标记每个方法来启用,如上所示
这一直有效,没有任何问题。最近我在管道中引入了另一个处理程序,示例片段如下:
public class CustomInterceptor : DelegatingHandler
{
protected async override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
//...etc... logic here...
//call the inner handlers...
var response = await base.SendAsync(request, cancellationToken);
//logs... etc
return response;
}
}
此后,我现在在浏览器控制台上间歇性收到可怕的 CORS 策略消息阻止。
访问 XMLHttpRequest 在 来自原点的“http://localhost:8080/api/GETSearchLatest20/” 'http://localhost:3000' 已被 CORS 策略阻止:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
注意我在 Visual Studio 下运行服务器/WebAPI。 我也不明白间歇性的部分;如果我在行上放一个断点
var response = await base.SendAsync(request, cancellationToken);
,调用继续完成并且没有 CORS 错误(看起来好像有点暂停有帮助);如果我删除断点,则阻塞消息是间歇性的。
有没有人有任何想法/解决方案来解决我的 CORS 问题?
【问题讨论】:
标签: asp.net-web-api cors asp.net-web-api2