我对REST的概念真的很陌生,我一直在尝试使用Google的Sheets,Drive和Classroom API。我已经能够提取课堂花名册数据,但是我一生都无法找出如何使用parseError修复此问题的方法,并且谷歌搜索数小时仍无济于事。
let init = {
method: "POST",
async: true,
headers: {
Authorization: "Bearer " + token,
"Content-Type": "application/json",
},
body: {
"mimeType": "application/vnd.google-apps.spreadsheet"
},
"contentType": "application/json"
};
fetch('https://www.googleapis.com/drive/v3/files?key='+apicall, init)
.then((response) => response.json())
.then(function(data) {
console.log(data);
console.log(init);
});
控制台日志是我可以查看的数据,显然这不会出现在最终项目中,但是每次发送请求时,它都会引发错误400 parseError,该错误为Google clearly tells me is a Content-Type error,但是我指定它是JSON,所以有点困惑。非常感谢您的帮助!
答案 0 :(得分:0)
经过一番修补,我想出了自己的答案。我将Content-Type
更改为application/javascript
。即使不是我想要的,它还是抛出了一个错误,说要更改fetch
URI。我尝试过,它制作了一个Javascript文件,其中只包含[object Object]
。我很困惑,所以我把它改回来了。遇到this quote时,我阅读了有关JSON格式的更多信息:
拥有Javascript对象时,序列化JSON非常简单:
这使我想起了它使空的Javascript对象...哦!主体信息不是格式化为JSON数据,而是格式化为Javascript数组!所以我想我应该...
var bodydata = {"name": "New spreadsheet", "mimeType": "application/vnd.google-apps.spreadsheet"};
let init = {
method: "POST",
async: true,
headers: {
Authorization: "Bearer " + token,
"Content-Type": "application/json",
},
body: JSON.stringify(bodydata)
...将Javascript数据转换为JSON字符串!
它奏效了!这非常令人满意,但是我想我会在这里回答我自己的问题,以供其他任何人学习REST API并像我一样自己弄清楚东西!