我已经看到了一些与此相关的问题,但他们都使用完整的JavaScript客户端库。我正在使用带有OAuth 2.0访问令牌的CORS请求,并且语法不同。由于我收到400错误,我相信我的语法是问题,所以我希望我的问题归结为。
我正在开发一个与Google Calendar API交互的日历应用程序,可以成功读取/显示用户的事件并将其删除。但是,我正在尝试添加事件编辑功能,但无法获取PATCH请求。这是我用来生成请求并设置适当标头的代码:
gapi.load('auth2', function() {
var localStorage = window.localStorage;
var access_token = localStorage.getItem('access_token');
var getEvent = new XMLHttpRequest;
getEvent.open('GET', 'https://www.googleapis.com/calendar/v3/calendars/primary/events/' + app2.event.googleId);
getEvent.setRequestHeader('Authorization', 'Bearer ' + access_token);
getEvent.send();
getEvent.onreadystatechange = function() {
if (getEvent.readyState === 4) {
var response = JSON.parse(getEvent.response);
response.summary = 'New summary';
var xhr = new XMLHttpRequest;
xhr.open('PATCH', 'https://www.googleapis.com/calendar/v3/calendars/primary/events/' + app2.event.googleId);
xhr.setRequestHeader('Authorization', 'Bearer ' + access_token);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(response);
}
};
});
来自本地存储的访问令牌是正确的,googleId也是如此,我将连接到URL的末尾。我已经将这两件事用于不同的请求,并且它们完美地工作。
根据Google的文档(https://developers.google.com/calendar/v3/reference/events/patch),更改应包含在请求正文中。 xhr.send()
中的语法问题是什么?我尝试了各种不同的单引号,双引号等组合,并继续得到400错误。
谢谢!