angular - 尝试使用 v3 API 获取 Youtube 视频的数据返回 CORS
问题描述
我正在尝试使用 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);
});
得到错误:
从源“mydomain”访问“https://www.googleapis.com/youtube/v3/videos?id=kd1u1ZdJz4w&key=myket&fields=items(snippet(title))&part=snippet”的 XMLHttpRequest 已被 CORS 政策阻止:对预检请求的响应未通过访问控制检查:响应中“Access-Control-Allow-Credentials”标头的值为“”,当请求的凭据模式为“包含”时,该值必须为“真”。XMLHttpRequest 发起的请求的凭证模式由 withCredentials 属性控制。
当从浏览器直接导航到 API 链接时,我得到了成功的 JSON 响应。
有什么建议么?谢谢!
解决方案
为了回答我自己的问题,在我的情况下,这是因为我发送了一个授权标头并且它与 API 的响应不符,所以我从获取授权令牌中排除了 url,并在选项中添加了一个 { withCredentials: false } 参数http.get() 函数中的对象。效果很好。
推荐阅读
- concurrency - When is "race" worthwhile in Perl 6?
- python - 通过取相邻元素的平均值来替换 numpy 矩阵中的元素
- angular - ngIf 在 Angular 6 中无法按预期工作
- java - 使用java查找定义正则表达式模式的所有允许字符
- math - 获取旋转矩形的边界
- excel - 用于组合相似行但对 1 列中的值求和的公式
- c# - 编写一个私有属性,它是自己的类对象的列表
- arduino-uno - Arduino 绘图错误“命令无法识别”m18 (GRBL + G-CODE)
- c# - LINQ 查找第一个可用的编号后缀字符串
- php - 使用 SQL 和 PHP 编辑实体中的多条记录