JavaScript向googleapi发送JSON

JavaScript向googleapi发送JSON,javascript,json,google-api,Javascript,Json,Google Api,我是Google API(Calendar V3)的新手,我通过获得令牌获得了授权。我正在使用get请求获取用户日历Id,我想在其中发送POST请求,以便将事件添加到日历中 以下是我的工作内容: var json_body = { "end": { "date": "2013-09-06" }, "start": { "date": "2013-09-06"

我是Google API(Calendar V3)的新手,我通过获得令牌获得了授权。我正在使用get请求获取用户日历Id,我想在其中发送POST请求,以便将事件添加到日历中

以下是我的工作内容:

        var json_body = {
           "end": {
             "date": "2013-09-06"
           },
           "start": {
           "date": "2013-09-06"
           },
           "summary": "test event 1"
        };

        var json_string = JSON.stringify(json_body);
        http.setRequestHeader("Content-Type", "application/json");
        http.setRequestHeader("Authorization","Bearer " + access_key);
        http.setRequestHeader("Connection", "close");

        http.onreadystatechange = function() {//Call a function when the state changes.
                if(http.readyState == 4 && http.status == 200) {
                        alert("in here");
                        alert(http.responseText);
                }
        }
        http.send(json_string);
我得到的答复是:

{
  "error": {
  "errors": [
{
   "domain": "global",
    "reason": "parseError",
   "message": "Parse Error"
}
],
"code": 400,
"message": "Parse Error"
}
}
我知道access_key authorization标头是正确的,因为它没有给我授权错误。我已经在谷歌API浏览器工具中运行了这个JSON结构,它正确地将一个元素添加到我的日历中。我假设我构建JSON的方式是不正确的。有什么想法吗

先谢谢你

编辑:


我找到了正确的解决办法。我在url请求中错误地使用了一个参数。上面的代码可以在以后有人偶然发现时使用。

您似乎发送的是json_正文,而不是这一行的json_字符串
var json_string=json.stringify(json_body)。这段代码正确吗?对不起,因为我在测试它,所以把stringify放在那里了。如果我使用stringify版本,我会得到一个404 Not found错误,而不是400 parse errorOK,明白了!您能否详细说明您将请求发送到的位置?即您要发布到的URL。我猜它的格式是:
POSThttps://www.googleapis.com/calendar/v3/calendars/{YOUR_CALENDAR\u ID}/events?key={YOUR_API\u key}
。这是正确的吗?这是正确的,尽管我保留了“key=”部分,因为我认为这是用于应用程序的,我的Get请求不需要这个。我正在使用访问键获得访问权限。它工作正常!我发现我在复制url中的一个参数。作为参考,http.send(json_字符串)是正确的方法。