[英]Get request not working in CORS with NancyFX
我在CORS請求和NancyFx方面遇到問題。 我有一些GET請求有效,但並非每次都有效。
由於我使用Content-Type : application/json
我的請求是“不是簡單的請求類型”,因此它們具有預檢OPTIONS
請求。
飛行前可以正常工作,但是有時下面的GET
請求返回404(找不到我要的路線),有時我會得到數據。
這是我在Nancyfx中的CORS回復:
protected override void RequestStartup(TinyIoCContainer requestContainer, IPipelines pipelines, NancyContext context)
{
base.RequestStartup(requestContainer, pipelines, context);
pipelines.AfterRequest.AddItemToEndOfPipeline((ctx) =>
{
ctx.Response.WithHeader("Access-Control-Allow-Origin", "*")
.WithHeader("Access-Control-Allow-Methods", "POST, GET, DELETE, PUT, OPTIONS, PATCH")
.WithHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
.WithHeader("Access-Control-Max-Age", "3600");
});
}
我打的請求看起來像這樣:
http://localhost:3579/api/v2/vnos/{idVno:guid}/vnos
(並且始終設置idVno)。
這是我在控制台中得到的:
這是我在“網絡”標簽中看到的內容:
我要在客戶端中添加的唯一特定標頭是Authorization
標頭。
應該在應用程序啟動時調用OPTIONS
處理程序,而不是像您那樣請求啟動,否則,如果請求不是2XX
,它將被忽略。
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
{
pipelines.AfterRequest += (ctx) =>
{
ctx.Response.WithHeader("Access-Control-Allow-Origin", "*")
.WithHeader("Access-Control-Allow-Methods", "POST, GET, DELETE, PUT, OPTIONS, PATCH")
.WithHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization")
.WithHeader("Access-Control-Max-Age", "3600");
}
}
有關更多信息,請參見https://github.com/NancyFx/Nancy/issues/1422 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.