簡體   English   中英

取得NancyFX無法在CORS中使用的要求

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM