jquery - 通过 JQuery 发布数据时,nodejs API 中的 req.body 为空

标签 jquery node.js

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

使用 Postman,一切正常...当我使用 jQuery 在 .NET Web 应用程序上调用 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);
    });

最佳答案

通常情况下,API 在 Postman 或 Rest-client 等 headless 工具中工作正常,但在代码/浏览器中却无法工作, 原因可能是你没有正确处理 cors,请尝试使用一个 npm 模块“cors” 并在 Node.js 中注册您的 api,如下所示

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

你能分享一下你的node.js代码吗?

关于jquery - 通过 JQuery 发布数据时,nodejs API 中的 req.body 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57412789/

相关文章:

javascript - Firebase 函数不向设备发送通知

node.js - 多对多关系 Sequelize Node JS 属性数组

node.js - 在 Express.js 中使用 TraceId 进行日志记录

jquery - 一旦它到达容器 div,将导航栏背景更改为黑色

javascript - 使用 jQuery 创建垂直 slider

javascript - Div 不会随着移动设备上的 onclick 事件消失吗?

php - 在 PHP 中从 jQuery 获取多个 post 值

javascript - 让 ngClick 处理动态字段

javascript - 我正在尝试从 ejs 模板中的 json 文件读取

javascript - 如何正确使用 Nan::HandleScope?