res.send没有发送数据以获取api

时间:2019-04-28 14:50:04

标签: javascript node.js

我在客户端上使用提取API:

    fetch("http://localhost:3000/buy", {
        method: 'POST', // or 'PUT'
        body: JSON.stringify({value:input.value}), // data can be `string` or {object}!
        headers: {
            'Content-Type': 'application/json'
        }
    }).then(res => res.json())
     .then(response => console.log('Success:', JSON.stringify(response)))
     .catch(error => console.error('Error:', error));

在我的服务器端,我有:

app.post('/buy' , ( req , res ) => {
    res.send({status:200,redirect:'asd'});
})

但是客户端代码未接收任何数据,我是否忽略了某些内容,或者为什么会发生这种情况?

感谢帮助。

2 个答案:

答案 0 :(得分:0)

您执行以下操作:

res.status(200).json({status:200,redirect:'asd'});

据我所知,res.send发送一个字符串,而res.json发送JSON

尝试在客户端进行一些更改

.then(response => console.log('Success:', response))

您在处理代码中的响应时使用JSON.stringify,但实际上您需要做相反的工作-JSON.parse。在您的代码中,它已经以res.json()的形式完成;因此,您只需要扔掉stringify命令即可。

我刚刚在机器上测试了上面的代码,一切正常。服务器返回响应。

答案 1 :(得分:0)

尝试不使用 JSON.stringify