我使用Nancy运行了一个.NET应用程序。我可以通过react应用程序从API端点成功获取数据,但如果出现服务器端错误,则会出现CORS错误。
我在Postman中没有收到CORS错误,尽管在我输入CORS代码之前我从来没有做过。
Cors Extension
public static void UseCors(this IPipelines pipelines)
{
pipelines.AfterRequest.AddItemToEndOfPipeline(ctx => ctx.Response
.WithHeader("Access-Control-Allow-Origin", "*")
.WithHeader("Access-Control-Allow-Methods", "GET,POST,DELETE,PUT,OPTIONS")
.WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-Type"));
}
引导程序
protected override void RequestStartup(TinyIoCContainer container, IPipelines pipelines, NancyContext context)
{
pipelines.UseCors();
pipelines.UseErrorResponses();
base.RequestStartup(container, pipelines, context);
}
我在Google Chrome控制台中收到的错误是:
Fetch API无法加载http://localhost:62187/shops/v1/orders。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://localhost:3000'因此不允许访问。响应的HTTP状态代码为500.如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”。在禁用CORS的情况下获取资源。
我尝试将CORS标头添加到OnError
管道,但它似乎没有改变任何内容。