Electron-fetch将json作为[对象对象]返回,但网络控制台显示正在返回正确的json对象

时间:2020-02-02 17:13:21

标签: javascript json electron fetch

我正在使用电子和reactjs进行项目。因此,我正在使用电子获取从使用JSON发送和返回JSON响应的API提取数据。

在网络控制台中,我可以看到我得到了预期的结果(我也使用了测试客户端(Insomnia),并确认我得到了如下的JSON响应:

{
  "result": 0,
  "message": null,
  "data": [
    {
      "MonitorId": 2,
      "LogName": "Test",
      "LogPath": "/root/test"
    }
  ]
}

但是,在电子应用程序的“网络”选项卡响应中,我可以看到上面的JSON对象,但是在控制台中显示了以下错误

SyntaxError:JSON中位置1处的意外令牌o 在JSON.parse() 在index.es.js:234

当我打印出response.body时,我看到的是[object object]而不是实际的JSON。

以下是我的提取请求

try
{
    fetch(url, {
         method: 'post',
         headers: {
           'Content-Type': 'application/json',
           'authorisation_token': authorisation
         },
         mode: 'cors',
         body: JSON.stringify(postArray)
    }).then(function (response) {
         if (response.status !== 200)
         {
             console.log("Something went wrong. Status Code: " + response.status);
             reject(response);
             return;
         }

         console.log(response);

         response.json().then(function (data) {
             resolve(data);
         }).catch(function (err) {
             console.error("Caught Error: " + err);
             reject(err);
         });
    });
}
catch (err)
{
   console.error(err);
}

我最近以相同的方式使用了普通读取,并且没有问题,因此不确定这是否是电子读取所特有的,或者我是否在这里缺少任何内容。

1 个答案:

答案 0 :(得分:0)

正如评论中提到的,我看了一个使用Electron和React(Insomnia.Rest)的项目,发现当他们发出请求时,他们似乎并没有使用电子取信,而是使用了{ {1}},当我尝试它似乎按预期运行时