首页 > 解决方案 > 客户端向 Express 服务器的 GET 请求仅以文本/html 形式获得响应

问题描述

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

邮递员回应:

邮递员回应

从按钮调用时 chrome 中的网络选项卡:

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。

在此处输入图像描述

标签: javascriptreactjshttpexpressfetch

解决方案


而不是
res.send(result)
你可以使用
res.status(200).json(result)


推荐阅读