客户端到Express服务器中的GET Request仅以text / html形式获得响应

时间:2019-04-25 18:56:04

标签: javascript reactjs http express fetch

我在快递服务器上有一个React应用。我正在使用fetch从客户端向服务器发出GET请求,当我在chrome上时响应作为Content-Type text / html返回,而在Postman中尝试时则返回为application / json。我想要它作为JSON。

邮递员回复:

Postman response

通过按钮调用时,

Chrome中的网络标签:

Network tab in chrome

我尝试更改快递请求中的内容类型。

app.get('/spotify/search-track', (req,res) => {
    spotify.searchTrack(req.query.name).then(function(result)
    {
        res.setHeader("Content-Type", "application/json");
        res.send(result);
    });
});

响应GET请求:

fetch('/api/spotify/search-tracks?name=' + val, 
{
     method: "GET",
     data: null,
     headers : { "Accept": "application/json" }
}).then(response => response.json()).then(data => console.log(data));

我也在Chrome上收到此错误-可能是因为<来自HTML。

enter image description here

2 个答案:

答案 0 :(得分:0)

代替
res.send(result)
您可以使用
res.status(200).json(result)

答案 1 :(得分:0)

我没有意识到请求正在调用/ api / spotify / search-tracks,而服务器正在期待/ search-track。我在那里不好;)