我在javascript中使用Google API。我设法通过以下代码获取了我的联系人列表:
$.ajax({
url: 'https://www.google.com/m8/feeds/contacts/default/full?access_token=' + access_token + '&alt=json',
method: 'GET',
error: function(error) {
alert('An error has occured during contact creation.');
},
success: function(data, status){
console.log(data);
}
});
我尝试通过将GET更改为POST并在请求正文中添加联系人数据来添加联系人。但是只要我添加数据属性,或者将GET更改为POST,服务器就会回答我真正讨厌的“No'Access-Control-Allow-Origin”错误。
有什么想法吗? 我正在关注此文档:https://developers.google.com/google-apps/contacts/v3/?csw=1#creating_contacts
非常感谢
答案 0 :(得分:1)
可以通过浏览器执行此操作,但根本不是。
基于this SO answer,我们了解到有一种名为gapi.client.request
的方法可以用于此(而不是jQuery的$.ajax
)。
因此,进行编辑我们可以这样做:
gapi.client.request({
method : 'PUT',
path:'m8/feeds/contacts/default/full/<contactId>/<editRevisionFromGET>',
body : {"version":"1.0","encoding":"UTF-8","entry": ...},
callback : function(data) {
console.log(data);
}
});
这里编辑的重要部分是:
entry.link
的{{1}}元素中URL末尾的当前ID(或者您将获得HTTP状态409 - 冲突)旁注:
请注意,这些请求实际上已完成edit
...
从一些快速测试,你似乎可以做到吗?所有?仅请求该URL而不是google.com,然后CORS问题就会消失。