web-dev-qa-db-ja.com

YouTube APIへのアップロード時に「アクセス制御許可 - 原点」が欠けている

数年間、私たちはいくつかのカスタムJavaScriptコードを使用してYouTube APIを介してビデオをアップロードしてきました。コードは、Google(cors_upload.js)によって提供されるいくつかのサンプルに基づいていました。それは私たちがたくさん使っているものではありません。

物事は数週間前にうまく働いていましたが、それは最近作業を中止したことが私の注意を払っています。私たちは大丈夫、私たちはチャネル情報を罰金に入手します。しかし、Uploadを起動すると(XHRの投稿で起こる)、私たちはCORSエラーを取得しています。

クロスオリジンリクエストブロック:リモートリソースAT https://www.googleapis.com/upload/youtube/v3/videos?part=snippet%2cStatus&uploadType = &uploadType = &uploadType = &uploadType = &uploadType = &uploadType=Roplable 。 (理由:Corsヘッダー 'アクセス制御許可オリジンの欠落)。

しかし、私たちはコードや私たちのサーバーに何も変更されていません.Googleによって必要なものが必要なすべてのものが必要なCORSヘッダーで応答するように必要なものとして表示されます。

DEVコンソールによると、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
 _

これは実際には「アクセスコントロール許可オリジン」ヘッダーを返します。ただし、これは直後に「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
 _

そして、Devコンソールによると、「アクセス制御許可 - 原点」ヘッダセットはありません。だから、私はブラウザが物事を拒否している理由を理解しています。 Googleが何かを破ったようです。

私たちが管理するサーバー上のNodeJS "Cors Anywhere"サーバーを正常にデプロイしました。だから、私はそれを使って問題を回避することができます。しかし、それは本当に問題に対する正しい解決策ではありません。動画をプログラムでアップロードするので、私たちがトンをするものではありませんので、この仕事はおそらく私たちにとってはおそらく十分です。私は何がうまくいかなかったのか、修復方法を理解したいと思います。それで、誰かがYouTube APIとJavaScriptを使ってビデオをうまくアップロードしている場合、私はそれについて聞いてほしいです。うまくいけば、これは彼らが問題に遭遇した場合、他人を教育するのを助けるでしょう。

5
Jeff Bruce

同じ問題が私のサービスで起こり始めました。

GoogleAPISのバグのようなものであるか、youtube.v3.apisにポリシー変更があり、クライアントをブロックし始めました。

1
Victor Aurélio