3

「Ajaxプログレスバーを使用したYouTube APIブラウザベースのアップロード」を正常に実装しました(YouTube APIチームによる「uploads.gdata.youtube.com」のCORSサポートの最近の実装に感謝します)

ただし、問題があります... youtube API から返される最終的な応答では、ロケーション リダイレクト ヘッダー (302) を送り返すことで、ブラウザをリダイレクトしようとします...

これは、AJAX 以外のシナリオでは期待どおりに機能する可能性がありますが、AJAX リクエストでは許可されません...

この問題には 3 つの解決策が考えられますが、どれでも問題なく機能します...

  1. YouTube API で、アップロードしたばかりのビデオの「ビデオ ID」を簡単に取得する方法が許可されていれば、誰にとってもはるかにシンプルで簡単になります。どこにもリダイレクトする必要はありません...そのようなオプションはありますか私が見落としたAPI?

  2. または、AJAX に、リダイレクト ヘッダーに従わないように要求を伝える方法はありますか?

  3. または、AJAX 要求シナリオ内でクロスドメイン リダイレクトを「許可」できる方法はありますか? (ユーザーが別のドメインにいる間にリダイレクトが youtube.com によって開始されているため、クロスドメイン リダイレクトの問題)

4

2 に答える 2

0

これは、GData API の v1/v2 ではサポートされません。

YouTube Data API v3 については、https ://youtube-api-samples.googlecode.com/git/yt-upload-javascript/index.html (ソース ファイルはhttps: //code.google.com/p/youtube-api-samples/source/browse/#git%2Fyt-upload-javascript ) を使用してアップロード フローを示し、Google+ ログイン ボタンを使用して OAuth 2 を処理します (使用できます)。必要に応じて、通常の OAuth 2 ブラウザー クライアント フロー) と進行状況インジケーターを使用します。また、アップロード後にビデオ処理ステータスをポーリングし、処理された結果のビデオをページに埋め込む方法も示します。

于 2013-09-20T00:05:07.880 に答える
0

これは修正されるはずの既知の問題ですが、実際には修正されていません。ブラウザ ベースのアップロード方法 (V2 でのみ使用可能) は、CORS を完全にはサポートしていません。唯一のオプションは、サーバーを介してビデオのアップロードをプロキシするか (ほとんどの場合)、ユーザーに Google アカウントにサインアップしてログインし、V3 API を使用してビデオをアップロードするように依頼することです (あまり良くありません)。

于 2013-10-10T15:19:54.170 に答える