我正在为我的Node后端API编写一个Cypress测试.测试发送一个带有一些Header和Body的POST请求,其中包含一些后台使用所需的参数.

奇怪的是,终结点只接收到空的request.body.

这是我的Cypress测试的样子,您可以看到我是如何发送请求正文的:

    it('onboards a repo - POST', () => {
        cy.request({
            method: 'POST',
            url: `/my/${org}/endpoint`,
            headers: headers,
            body: {
                productId: productId,
                requestorEmail: requestorEmail
            }
        }).then( (response) => {
            expect(response.status).to.eq(200);
        });
    });

Edit:以下是我要发送的标题:

    const headers = {
        'Accept': 'application/json',
        'Content-Type': 'application/json, text/plain',
        'Authorization': 'Bearer <MY_TOKEN>',
    };

你知道为什么我在后台没有收到request.body以内的任何东西吗?

推荐答案

我在Cypress 的Github上看到了你的讨论,但你在这里似乎很活跃,所以我会交叉发布.

您的问题是Content-Type标题.Cypress 不喜欢'application/json, text/plain',但把它改成'application/json'应该可以解决它.

Node.js相关问答推荐

使用HTTPS从NodeJS 17.9.1升级到18.0.0后,SignalR连接失败

如何在RavenDB中执行JS索引?

Mongoose-如何从父文档填充到子文档

FireStore事务似乎已允许并发编辑?

在对象的嵌套数组中使用$lookup,创建多个记录作为响应,mongodb

Node js 处理回调和 Promise

无法使用 Express 设置会话 cookie 的过期日期

Mongodb - 在数组数组中查找()

Node.js中使用ffmpeg如何获取视频截图的位置?

bcrypt.compare 每次都返回 false

找不到模块bcryptjs

将已保存的卡片从条带显示到前端

NodeJS 后端发布请求将数据作为NULL值发布到 SQL Server 表

使用 $in 查询时,如何获取 mongoDB 中每个唯一 ID 的 n 个文档?

如何使用 superagent/supertest 链接 http 调用?

Node.js 变量声明和范围

如何在 MongoDB 上只收听 localhost

安装Node.js 安装n 安装Node.js?

Express js 阻止 GET /favicon.ico

将 expressjs 绑定到特定的 IP 地址