上传到YouTube API时缺少“ Access-Control-Allow-Origin”

问题描述 投票:4回答:2

[几年来,我们已经成功使用某些自定义JavaScript代码通过YouTube API上传了视频。该代码基于Google(cors_upload.js)提供的一些示例。这不是我们经常使用的东西,只是每两周一次。

几周前一切正常,但最近引起人们注意的是事情停止了运作。我们登录良好,我们获得了渠道信息。但是,当我们开始上传(通过XHR POST发生)时,我们会收到CORS错误:

跨域请求被阻止:同一起源策略不允许读取https://www.googleapis.com/upload/youtube/v3/videos?part=snippet%2Cstatus&uploadType=resumable处的远程资源。 (原因:CORS标头“ Access-Control-Allow-Origin”缺失)。

但是我们并没有在代码或服务器上进行任何更改,似乎我们正在按照Google的记录进行所有必要的工作,以使他们的服务以所需的CORS标头响应。

根据开发控制台,XHR请求实际上会生成2个网络请求。首先,我看到一个“选项”:

Request URL:https://www.googleapis.com/upload/youtube/v3/videos?part=snippet%2Cstatus&uploadType=resumable
Request Method:OPTIONS
Remote Address:172.217.9.42:443

实际上,这确实返回了我期望的“ access-control-allow-origin”标头。但是,紧随其后的是“ POST”请求:

Request URL:https://www.googleapis.com/upload/youtube/v3/videos?part=snippet%2Cstatus&uploadType=resumable
Request Method:POST
Remote Address:172.217.9.42:443

并且根据开发控制台,它没有设置“ access-control-allow-origin”标头。因此,我了解了为什么我的浏览器会拒绝某些东西。好像Google摔坏了。

我确实在我们管理的服务器上成功部署了NodeJS“ CORS Anywhere”服务器。因此,我可以使用它来解决此问题。但这确实不是解决问题的正确方法。由于以编程方式上传视频不是我们要做的事情,因此这项工作对我们来说可能就足够了。我很想了解问题出在哪里或如何解决。因此,如果有人成功使用YouTube API和JavaScript上传了视频,那么我很想听听。希望这将有助于在其他人遇到问题时对其进行教育。

youtube-api cors youtube-data-api
2个回答
1
投票

我的服务刚刚开始出现相同的问题。

这似乎是googleapis上的错误,或者youtube.v3.apis进行了政策更改并开始阻止某些客户端。


0
投票

同样。我没有解决方案,只有解决方法,我希望他们尽快解决。您可以在Chrome中禁用CORS安全检查。我对Chrome应用程序使用快捷方式。在快捷方式设置中,您可以添加以下扩展名,这样chrome.exe无需网络安全即可运行。也许您需要更改文件夹和驱动器字母:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security --disable-gpu --user-data-dir=c:/chromeNoCorsTemp/

© www.soinside.com 2019 - 2024. All rights reserved.