Javascript Electron fetch以[object object]的形式返回json,但网络控制台显示返回的是正确的json对象
我正在使用electron和reactjs进行一个项目。因此,我使用electron fetch从API获取数据,并使用JSON发送和返回JSON响应 在网络控制台中,我可以看到我得到了预期的结果(我还使用了测试客户端(失眠),并确认我得到了一个JSON响应,如下所示:Javascript Electron fetch以[object object]的形式返回json,但网络控制台显示返回的是正确的json对象,javascript,json,electron,fetch,Javascript,Json,Electron,Fetch,我正在使用electron和reactjs进行一个项目。因此,我使用electron fetch从API获取数据,并使用JSON发送和返回JSON响应 在网络控制台中,我可以看到我得到了预期的结果(我还使用了测试客户端(失眠),并确认我得到了一个JSON响应,如下所示: { "result": 0, "message": null, "data": [ { "MonitorId": 2, "LogName": "Test", "LogPat
{
"result": 0,
"message": null,
"data": [
{
"MonitorId": 2,
"LogName": "Test",
"LogPath": "/root/test"
}
]
}
然而,在electron应用程序中,在网络选项卡响应中,我可以看到如上所示的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);
}
我最近以同样的方式使用了普通的fetch,没有问题,所以不确定这是否是electron fetch特有的东西,或者我是否遗漏了一些东西。如评论中所述,我看了一个使用electron和React的项目(失眠。Rest)当他们做一个请求时,发现他们似乎不使用electron fetch,而只是使用普通的fetch,但是他们使用了
window.fetch()
,当我尝试时,它似乎能按预期工作为什么会有resolve()
和reject()
调用?fetch()
返回一个Promise
,因此它周围不需要额外的Promise
,@Andreas我在我自己的助手方法中调用fetch,它返回一个Promise,因此当我的方法完成时,它的被调用位置可以得到Promise回调,嗯,乍一看我也看不到错误-内置的方法是否选择了ronnet
API是否正确返回json?如果是,可能值得仔细查看库?不确定我从未使用过它。只是刚开始使用electron/react。快速查看一下,我想我需要从start.js(创建BrowserWindow的地方)运行它?您需要在主进程中的某个地方运行它(我猜您希望在主进程中使用它-或者您可能会使用浏览器windows fetch())。即使不创建BrowserWindow,您也应该能够运行此api(仅使用electron而不是node来运行脚本)。对于我来说,将electron视为扩展的node.js运行时有很大帮助。