【问题标题】:req.body in nodejs API is empty when data is posted via JQuery当通过 JQuery 发布数据时,nodejs API 中的 req.body 为空
【发布时间】:2025-11-24 04:40:02
【问题描述】:

所以这里我有一个 API,它获取图像的链接并使用第三方 API 压缩该图像,API 获取链接; req.body.link。问题是当我通过 jQuery 和 ajax 发送数据时,数据没有到达 API,我尝试 console.log(req.body) 并显示 {}...但是当我使用 Postman 时,console.log( req.body) 返回带有数据的正文。

使用 Postman,一切正常...当我使用 jQuery 在 .NET webapp 上调用 API 时,问题就开始了。

我试过 JSON.stringify(),我试过 $.ajax 方法

这是nodejs代码

app.post('/upload',(req,res)=>{
    opts={
        url:req.body.link,
        wait:true,
        lossy:true,
        quality:60
    };

    kraken.url(opts,(err,data)=>{

        if(err){
            res.json([{"Status":"Failed"},{"Message":"Forbidden file format"}]);
        }else{
            res.json(data);
        }

    });

});

下面是 jQuery 代码(我已经尝试过 $.ajax)

    var url = `https://www.example.info/wp-content/uploads/2016/04/19/04.jpg`;

    $.post('http://localhost:5000/upload/', {"link":url}, function (data) {
        console.log(data);
    });

【问题讨论】:

  • 您在 Postman 中使用了什么内容类型? $.ajax 方法(包括 $.post)的默认值是表单编码
  • 在 JS 中反引号是有效的字符串文字分隔符吗?
  • @RiggsFolly 是的...称为 模板文字
  • @charlietfl 谢谢,又是一个愉快的学习日
  • @charlietfl 邮递员的内容类型是 application/json

标签: jquery node.js


【解决方案1】:

通常情况下,API 在 Postman 或 rest-client 等无头工具中运行良好,但在代码/浏览器中无法运行, 原因可能是您没有正确处理 cors,请尝试使用一个 npm 模块“cors” 并在 node.js 中注册您的 api

var cors = require('cors')
app.use(cors())

你也可以分享你的 node.js 代码吗?

【讨论】:

    最近更新 更多