The*_*ica 9 c# asp.net api cors nancy
我试图让所有类型的请求与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"))
Run Code Online (Sandbox Code Playgroud)
选项请求返回状态代码为200,这使我相信它执行正常,但对于OPTIONS以外的任何类型的请求,它都会因405 Method Not Allowed而失败.还有什么我需要做客户端或服务器端才能使其工作?
我使用的客户端库是骨干.
提前致谢.
Jus*_*ing 19
我认为您不需要将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"));
. . . .
}
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,CORS在我的GET和POST上发送,但不是OPTIONS.我用OP覆盖了默认的OPTIONS处理Options["/"] = route => new Response()
.这让管道的其余部分开火了.
归档时间: |
|
查看次数: |
7075 次 |
最近记录: |