所以这里我有一个 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/