【发布时间】:2018-08-30 21:25:58
【问题描述】:
我正在尝试使用 GoToMeeting 的 API 并发出 POST 请求来创建会议。目前,我只是在尝试对会议正文进行硬编码并发送标题,但我收到了无效的 JSON 错误,不知道为什么。这是该路线的代码:
app.post('/new-meeting', (req, res) => {
const headers = {
'Content-Type': 'application/json',
Accept: 'application / json',
Authorization: 'OAuth oauth_token=' + originalToken
};
console.log('-----------------------------------------------------------')
console.log('Acess Token:');
console.log('OAuth oauth_token=' + originalToken);
console.log('-----------------------------------------------------------')
const meetingBody = {
subject: 'string',
starttime: '2018-03-20T08:15:30-05:00',
endtime: '2018-03-20T09:15:30-05:00',
passwordrequired: true,
conferencecallinfo: 'string',
timezonekey: 'string',
meetingtype: 'immediate'
};
return fetch('https://api.getgo.com/G2M/rest/meetings', {
method: 'POST',
body: meetingBody,
headers: headers
}).then(response => {
console.log('response:');
console.log(response);
response
.json()
.then(json => {
res.send(json);
console.log(req.headers);
})
.catch(err => {
console.log(err);
});
});
});
当我点击那个路由器时,我收到以下错误:
{
"error": {
"resource": "/rest/meetings",
"message": "invalid json"
}
}
任何建议将不胜感激!
【问题讨论】:
-
在放入
body选项之前尝试JSON.stringify()你的meetingBody对象,我不认为fetch会自动将对象解析为json -
@PatrickEvans 对正文进行字符串化意味着需要更改标头,而且 api 很可能在正文中接受 json
-
@mast3rd3mon,不,它没有。标头只是告诉服务器会发生什么,并且由于 JSON 是文本并且对对象进行字符串化会产生文本,因此标头不需要更改
-
stringifying json 将其转换为文本,因此标题变为 text/plain
-
@mast3rd3mon — 不,它没有。
JSON.stringify输出 JSON 文本。 JSON 文本不是 纯文本 文本。
标签: javascript json api express