如何从 Nodejs 服务器启用 CORS

2023-12-04

我正在使用 React 将数据发送到我的 API。我发出的每个 POST 请求都会给我一个 OPTIONS 请求,我需要解决这个问题。我想我可能需要做一些预检结构,但读完后我仍然不知道如何实现它。

目前我正在连接到我的 API,如下所示...

fetch('http://localhost:8080/login', {
        method: 'POST',
        mode:'cors',
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({
            username: this.state.username,
            password: this.state.password
        })
    });

这就是所谓的onSubmit。我正在向我的 POST 请求发送一些数据,所以我假设我需要这些标头。

现在,在我的 Node js 服务器 API 中,我有以下处理程序...

var responseHeaders = {  
    "access-control-allow-origin": "*",
    "access-control-allow-methods": "GET, POST, PUT, DELETE, OPTIONS",
    "access-control-allow-headers": "content-type, accept",
    "access-control-max-age": 10,
    "Content-Type": "application/json"
};

app.post('/login', function(req, res, next) {
    if (req.method == "OPTIONS") {
        res.writeHead(statusCode, responseHeaders);
        res.end();
    }
    console.log("hello");
   ...

然而,这不起作用,当我提出请求时,我得到......

OPTIONS /login 200 8.570 ms - 4

如果我删除标头,POST 可以工作,但数据(用户名、密码)不会通过。

如何绕过这个 OPTIONS 问题?


浏览器向服务器发送预检选项请求,以检查服务器上是否启用了 CORS。要在服务器端启用 cors,请将其添加到您的服务器代码中

app.use(function(req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
        next();
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Nodejs 服务器启用 CORS 的相关文章

随机推荐

  • Javascript生成具有特定字母数量的随机密码[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想在客户端的网页中用 JavaScript 生成密码 密码应使用字母和数字 也许还有一些符号 如何在 Javascript 中安全地生成密码 由于密码需要是不可预测的 因此它需要由
  • 使用 CSS 而不是 jquery 将图像置于 div 中居中

    我试图将任何大小的图像放入 始终 方形 div 中 并在父 div 的大小发生变化时保留外观 这就是我正在做的 CSS photo container width 250px height 250px overflow hidden bor
  • 一个可重用的函数,使用 html5 canvas 将图像剪辑成多边形

    猜测帖子的标题可能需要编辑 但目前我不知道问题出在哪里 我在这里和其他地方阅读了类似问题的页面和答案 Stack Overflow 的一个答案特别接近 但我不明白 我想要一个函数 在画布上所需的坐标处绘制多边形 并用从文件加载的一些背景图像
  • 从现有 MongoDB 数据库创建 Django 模型

    我在 MongoDB 中有一些数据库 我想为其动态创建模型 因为数据库很多 我无法手动完成 问题 我的 models py 应该是什么样子 inspectdb 是否适用于 mongodb 数据库或仅适用于基于 SQL 的数据库 由于数据库模
  • 终止的线程恢复

    我将一堆线程对象存储在数组列表中 我希望能够随机启动这些线程 同一个线程可以启动多次 在启动线程对象之前 我检查线程是否处于活动状态 以及它们是否具有 NEW 或 TERMINATED 状态 这个限制是因为 我不想打扰 繁忙 的线程 现在
  • VirtualBox 中的 Neo4j 服务器:无法创建 rrd 存储

    我正在尝试运行我的 Virtualbox 中的 Neo4j 服务器正在运行 Ubuntu 这服务器文件和数据库位于我的 Windows 主机内并可访问通过共享文件夹 vboxsf 不幸的是 我无法轻松地将数据传输到虚拟机并直接在那里运行 由
  • Android异常:您是否忘记调用“public void setup(LocalActivityManager ActivityGroup)”

    MyCode public class MainActivity extends Activity Override protected void onCreate Bundle savedInstanceState super onCre
  • PHP 时间戳直到“几小时前”的麻烦

    我需要确定我们网站上发布的评论的 时间之前 时间戳 我的老板希望它只显示到几个小时 因此它应该显示 48 小时前 而不是 2 天前 或 480 小时而不是 20 天前 这是我找到的代码 但直到几个小时我才知道如何做到这一点 date def
  • 禁用应用程序的 Android O 自动填充服务

    Android O 有支持的功能自动填充对于字段 有什么方法可以针对特定应用程序禁用它 也就是说 我想强制我的应用程序不使用自动填充服务 是否可以 要阻止整个活动的自动填充 请在活动的 onCreate 中使用它 getWindow get
  • 自动完成时触发了任何事件吗?

    我有一个非常简单的表格 当用户在输入字段中键入内容时 我想更新他们在页面其他位置键入的内容 这一切都很好 我已将更新绑定到keyup change and click events 唯一的问题是 如果您从浏览器的自动完成框中选择输入 它不会
  • 从触发器调用包含动态 SQL 的存储过程

    我从触发器调用存储过程并收到以下错误 存储函数或触发器中不允许使用动态 SQL 为什么会发生这种情况 动态SQL是在存储过程中执行的 这是从触发器调用的 也许这就是问题所在 如果是的话有什么解决办法吗 编辑 添加代码 这是主表中的触发器 T
  • 如何在Excel VBA中根据行和列ID查找单元格值

    需要 VBA Sub 来根据行和列 ID 查找单元格值 在下面的示例中 我需要选择 East 和 RT3 相交处的值 即 80 A B C D E 1 null RT1 RT2 RT3 RT4 2 North 31 40 78 11 3 S
  • 在后台运行 cgi shell 脚本

    我有一个像这样的cgi shell脚本 bin sh show the page echo Content type text html echo echo b Hello world b the task I want to do in
  • 如何以像素增量滚动 DataGridView

    我最初的方法是将 DataGridView 包含在面板内 将其高度设置在面板边界之外 然后更改控制面板的滚动条位置 然而 我刚刚发现我的 DataGridView 内的行数将达到 2000 这迫使我将 DataGridView 的大小至少设
  • 在后台进程后运行代码 - parse.com

    我的 viewController 中有一个 findObjectsInBackgroundWithBlock 方法 现在我想执行代码 但直到这个后台方法完成为止 我怎样才能做到这一点 我正在使用 swift 编程语言 这是一些可以帮助您的
  • Laravel Cookies 中的额外字符串和管道字符

    在我正在开发的 Laravel 6x 项目中 我设置了一个 cookie Cookie queue remember me json encode uid gt user gt id token gt token 2628000 我正在读取
  • mysql:如何在LEFT JOIN后保存ORDER BY而不重新排序?

    我有两张桌子 1 profiles id name 1 WILLIAM 2 JOHN 3 ROBERT 4 MICHAEL 5 JAMES 6 DAVID 7 RICHARD 8 CHARLES 9 JOSEPH 10 THOMAS 2 r
  • 如何在 UILabel 中解析和显示超链接(电话号码/电子邮件地址等)?

    几乎在 iPhone 的任何地方 您都可以键入文本 操作系统会将部分文本识别为超链接 例如电话号码 电子邮件地址 不过 我在自己的应用程序中使用 UILabel 对此进行了测试 但它不起作用 我如何激活这个 iphone sdk 是否提供了
  • Android 中 Twitter 共享的 xAuth 身份验证?

    我正在研究Twitter Authentication 基本身份验证将expire8月16日起 所以我们必须使用OAuth使用 Twitter 身份验证 但实施起来有些复杂 XAuth就是切断了两个步骤 但问题是我used Twitter4
  • 如何从 Nodejs 服务器启用 CORS

    我正在使用 React 将数据发送到我的 API 我发出的每个 POST 请求都会给我一个 OPTIONS 请求 我需要解决这个问题 我想我可能需要做一些预检结构 但读完后我仍然不知道如何实现它 目前我正在连接到我的 API 如下所示 fe