gpt4 book ai didi

c# - 让 CORS 与 Nancy 一起工作

转载 作者:太空狗 更新时间:2023-10-29 17:35:49 24 4
gpt4 key购买 nike

我正在尝试让所有类型的请求与 Nancy 和 CORS 一起工作。目前我在请求的末尾添加了一个管道:

            pipelines.AfterRequest.AddItemToEndOfPipeline((ctx) => ctx.Response
.WithHeader("Access-Control-Allow-Origin", "http://localhost:57515")
.WithHeader("Access-Control-Allow-Methods", "POST, GET, DELETE, PUT, OPTIONS")
.WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type")
.WithHeader("Allow", "POST, GET, DELETE, PUT, OPTIONS"))

选项请求返回状态代码 200,这让我相信它执行得很好,但对于除 OPTIONS 之外的任何类型的请求,它都会失败并返回 405 Method Not Allowed。为了让它工作,我还需要在客户端或服务器端做任何其他事情吗?

我使用的客户端库是 backbone。

提前致谢。

最佳答案

我认为您不需要将 OPTIONS 指定为允许的 CORS 方法。我从来没有见过那个场景,我也从来没有自己设置过。浏览器不会提示。

另一方面,我的设置与您类似:

public abstract class MyModule : NancyModule
protected MyModule(bool hasRazorView = true)
After.AddItemToEndOfPipeline((ctx) => ctx.Response
.WithHeader("Access-Control-Allow-Origin", "*")
.WithHeader("Access-Control-Allow-Methods", "POST,GET")
.WithHeader("Access-Control-Allow-Headers", "Accept, Origin, Content-type"));
. . . .
}
}

在我的例子中,CORS 通过我的 GET 和 POST 发送,而不是 OPTIONS。我用 Options["/"] = route => new Response() 覆盖了默认的 OPTIONS 处理。这让管道的其余部分启动。

关于c# - 让 CORS 与 Nancy 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26171749/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com