我正在为我的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连接失败

从MongoDB获取Tree数据

npm错误;无法解析依赖项:npm ERR!对等webpack@;5.x.x;来自@webpack-cli/serve@2.0.5";

我的 React + Express 应用程序不断向我的数组添加一个空对象

npm 在 Windows 终端中不工作

为什么要加密 CSRF 令牌?

看起来这段代码try GET 请求发送的值变为空白

如何删除mongodb中嵌套数组中所有出现的数组元素

如何从哪个应用程序用户中找到在 Firebase 身份验证中进行身份验证的用户

当我们有esnext时,为什么我们需要nodenext typescript 编译器选项?

如何在 NodeJS 中获取操作系统用户名?

Chrome 浏览器未将 if-modified-since 标头发送到服务器

Node_redis - 如何删除密钥?

AngularJS +sails.js

使用 MongoDB 更新嵌套数组

将变量传递给nodemailer中的html模板

如何使用 Node.js、Express 和 Mongoose 进行身份验证?

Express.js:没有这样的文件或目录

使用 gzip/deflate 压缩的简单 HTTP 请求

AWS Lambda 函数写入 S3