3

成功したロードの1つは、次のようなものです。

http://gdata.youtube.com/feeds/api/videos/N7m86aMNjlQ?callback=jsonp1335008664824&alt=json-in-script

ただし、動画が非公開または存在しない場合は、httpエラーステータスコードを含むメッセージのみが返されます。

http://gdata.youtube.com/feeds/api/videos/zkZBEnBjOjY?callback=jsonp1335008664915&alt=json-in-script

「jsonp1335008664824」のような一意のコールバック関数名の例を作成し、スクリプトタグのsrcとしてURLを追加し、スクリプトが読み込まれたときに関数をキャッチします。ただし、エラーが返された場合、YouTubeはコンテンツをコールバック関数として返さないため、いずれもキャッチできません。スクリプトタグには「onerror」属性がないため、ロードされているのか、404または503ステータスコードなどのエラーが返されたのかさえわかりません。

スクリプトタグを追加するときにタイムアウト関数を設定することが、それを処理する唯一の理由のようです。しかし、それは信頼できる方法ではないので、私は別のオプションを探しています。ステータスコードをキャッチしてもエラーメッセージが表示されないことはわかっていますが、ステータスコードは2つと、「ビデオが見つかりません」の場合は404、「ビデオはプライベート」の場合は503の2つのエラーしかありません。

4

1 に答える 1

0

Youtube開発者フォーラムから回答を得ました。結果として、jsoncはこの種のリクエストを処理するためのより良い方法です。そして、この開発により、リクエストは次のレイアウトになりました:http: //gdata.youtube.com/feeds/api/videos/zkZBEnBjOjY?callback=jsonp1335008664915 &alt=jsonc&v=2

また、ここから学んだように、YoutubeDataApiでXMLHTTPRequestを使用できます。これからPOSTとPUTのリクエストができるので、これは素晴らしいです。

于 2012-04-24T01:18:12.577 に答える