好的,我正在向Google Contacts API发出请求,我在后端有一个Node服务器,我通过身份验证并从中检索Google API令牌。当我尝试发送此令牌时,我从下面的代码中得到了一个预检错误:
let headers = new HttpHeaders().set('GData-Version', '3.0')
.set('Authorization', 'Bearer ' + token)
.append('Content-Type', ['application/atom+xml', 'charset=UTF-8', 'type=feed']);
http.get('https://www.google.com/m8/feeds/contacts/'
+ _authService.getAuthUser().email + '/full', { headers: headers })
.subscribe(contacts => {
console.log(contacts);
});
以下是我尝试使用的API端点文档的链接:
有关如何解决此问题的想法吗?
答案 0 :(得分:2)
好的,问题出在浏览器上。默认情况下,chrome和safari都不允许我从localhost请求我的Web应用程序之外的资源。解决方法是安装插件或关闭浏览器安全性,如下所示:Bypass CORS for local testing
但最后我只是选择从API发出请求,这也是本地运行的节点服务器,但启用了CORS,然后将结果发送到我的前端应用程序。