我试图使用Angular使用V3 youtube数据API在视频上获取数据,我有一个帐户,设置了一个项目,添加了API并获得了API密钥。所有这些都在谷歌开发者网站上设置好了,包括正确的限制。但当我试图发出一个简单的HTTP get调用,我得到CORS。调用是:
this.http.get('https://www.googleapis.com/youtube/v3/videos?id=kd1u1ZdJz4w&key=mykey&fields=items(snippet(title))&part=snippet')
.subscribe(res => {
console.log(res);
});
得到错误:
访问XMLHttpRequest"https://www.googleapis.com/youtube/v3/videos?id=kd1u1ZdJz4w&关键= myket&字段=物品(片段(标题)),部分=片段'来自源'mydomain'已被CORS策略阻止:响应预飞行请求未通过访问控制检查响应中的"Access-Control-Allow-Credentials"头是"which"当请求的凭据模式为"include"时,必须为"true"。的由XMLHttpRequest发起的请求的凭据模式为由withCredentials属性控制。
当直接从浏览器导航到API链接时,我得到了一个成功的JSON响应。
有什么建议吗?谢谢!
为了回答我自己的问题,在我的例子中,这是因为我发送了一个授权头,它与API的响应不一致,所以我从获取授权令牌中排除了url,并在http.get()函数中的options对象中添加了一个{withCredentials: false}参数。伟大的工作。