让 CORS 与 Nancy 一起工作

2023-11-21

我正在尝试获取与 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。为了让它工作,我还需要在客户端或服务器端做任何其他事情吗?

我使用的客户端库是骨干库。

提前致谢。


我认为您不需要将 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 处理Options["/"] = route => new Response()。这导致管道的其余部分着火。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让 CORS 与 Nancy 一起工作 的相关文章

  • Bjarne Stroustrup 的 C++ 编程和实践第 2 版中的使用单参数排序

    我正在阅读 Bjarne Stroustrup new C PP 第二版 他在其中使用了排序方法 sort someVector 使用此方法编译代码时出现以下错误 3 IntelliSense 没有重载函数 sort 的实例与参数列表匹配
  • 使用顶点缓冲区对象 (VBO) 渲染 Kinect 点云

    我正在尝试制作一个动态点云可视化工具 使用 Kinect 传感器每帧更新这些点 为了抓取帧 我使用 OpenCV 和 GLUT 来显示 OpenCV API 对于点 xyz 位置返回 640 x 480 float 对于 rgb 颜色数据返
  • C#/Linq 获取相邻的集合

    我有一个有序列表 例如 0 1 2 6 7 10 我想要得到数字加 1 的集合 我想要第一个数字和计数或系列 所以我会得到开始 0 计数 3开始 6 计数 2开始 10 计数 1 我怎样才能在 C 中做到这一点 答案是我认为最好的方式 对我
  • 路径不是有效的虚拟路径

    下面的方法采用指向 xml 文件的路径 tree LoadContentFile path 我从本地文件系统传递完整路径 或使用Server MapPath 但每次我总是收到此错误 Path 不是有效的虚拟路径 编辑 我正在使用Teleri
  • 使 MahApps.Metro 中的 ProgressRing 更小

    看起来 MahApps Metro ProgressRing 控件默认的最小尺寸为 60x60 ProgressRing 有一个名为 IsLarge 的属性 但即使将其设置为 False 似乎也不会影响使 ProgressRing 小于 6
  • WriteLine 与类

    我正在制作一个 SchoolApp 程序来学习 C 并且我正在尝试实现以下主要功能 namespace SchoolApp class Program public static void Main string args School s
  • libc++ 中短字符串优化的机制是什么?

    这个答案 https stackoverflow com a 10319672 1805388给出了短字符串优化 SSO 的高级概述 但是 我想更详细地了解它在实践中是如何工作的 特别是在 libc 实现中 字符串必须有多短才能符合 SSO
  • 如何在 C++ 中创建动态整数数组?

    如何使用 C 创建动态整数数组new关键词 int main int size std cin gt gt size int array new int size delete array return 0 别忘了delete你分配的每个数
  • Unity C# 嵌套 IEnumerator

    在我的代码中 我嵌套了 IEnumerator 方法 如下所示 private IEnumerator PerformRequest string url Doing stuff UnityWebRequest request UnityW
  • 在执行任何操作之前执行代码

    我有以下要求 在对我的网页的每个请求中 无论用户尝试调用哪个操作 我都需要调用一些代码来检查资源是否到位 如果是 那么一切都很好 并且应该正常调用操作方法 但是 如果此资源不可用 我希望所有请求返回一个单独的页面 要求用户从可用资源列表中选
  • 结构体指针运算符猜想(理论)

    结构体指针的使用非常频繁 因此有一个特殊的运算符 gt 下面的表达式是等价的 x y x gt y 将此运算符简单地视为如下定义的预处理器宏是否公平 define x gt x 为什么或者为什么不 或者它从一开始就被编码为运算符 这有何不同
  • 上传带有附加信息的文件(Angular 8 到 C# Core 3)

    我终于弄清楚如何将文件从 Angular 8 前端上传到 C Net Core 3 0 后端 API 控制器 但为了获得我完全需要的内容 我还有一个类定义了用户设置的文件内容 例如标题行 列值等 也需要传入 在客户端 我只需创建一个 For
  • 如何在其他项目中添加NLog类库项目

    我已经用 C 创建了一个控制台项目 在该项目中我使用 NLog 进行日志记录 当我运行该项目时 它成功登录到多个目标 例如控制台 文件 EventLog 以及 Sentinal 但是 当我将此项目作为类库并尝试添加对另一个项目的引用时 它不
  • 为什么&在变量之前使用?

    Why is 之前在这里使用过decks scanf i decks 如果我的输入是像 k 这样的任何字母 那么它会显示像 1929597720 这样的输出 为什么 include
  • 将 CreateThread 与 lambda 结合使用

    只是试验 但我想知道是否可以使该代码工作 如编译 void main int number 5 DWORD dontThreadOnMe PVOID PVOID data int value int data cout lt lt valu
  • 我可以向函数添加属性以防止重入吗?

    目前 我有一些如下所示的功能 private bool inFunction1 false public void function1 if inFunction1 return inFunction1 true do stuff whic
  • Asp.net 发布构建与调试构建

    如何确定我的应用程序是否编译为 发布 而不是 调试 我转到 VS 2008 项目属性 gt 构建并将配置从调试设置为发布 但我发现没有任何变化 这是一个 ASP NET 项目 HttpContext IsDebuggingEnabled h
  • SingleResult.Create 在空 IQueryable 上的 Odata 序列化错误

    我正在使用 OData v4 并尝试让一个非常简单的控制器工作 控制器 public class ProductController ODataController readonly MasterDataEntities db new Ma
  • 哪个 AWS Simple Email Service API 是最新的

    我正在使用 AWS SES 构建一个应用程序 但我不清楚应该针对哪个版本的 API 进行开发 AWSSDK SimpleEmail https www nuget org packages AWSSDK SimpleEmail AWSSDK
  • C# 中 SQL 的转义字符

    我想在我的 C 代码中添加一个简单的 select 语句 示例如下所示 fname 中的 y 等值来自参数 从myTable中选择lname 其中fname y 这就是我正在做的事情 我显然得到了 Sql 异常 我该如何纠正它 谢谢 str

随机推荐