1

所以在这里我有一个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);
    });
4

1 回答 1

0

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

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

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

于 2019-08-08T13:23:12.727 回答