Angular 5 HTTPClient / HTTPHeader'预检响应不成功'

时间:2018-03-14 19:31:46

标签: http google-api angular5 google-oauth2

好的,我正在向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端点文档的链接:

Contacts API docs

有关如何解决此问题的想法吗?

1 个答案:

答案 0 :(得分:2)

好的,问题出在浏览器上。默认情况下,chrome和safari都不允许我从localhost请求我的Web应用程序之外的资源。解决方法是安装插件或关闭浏览器安全性,如下所示:Bypass CORS for local testing

但最后我只是选择从API发出请求,这也是本地运行的节点服务器,但启用了CORS,然后将结果发送到我的前端应用程序。