1

realurl = 'TOwd30wXc-0' (YouTube ビデオ ID) の次のコードがあります。

$.ajax({
        url: "http://gdata.youtube.com/feeds/api/videos/"+realurl+"?v=2&alt=json-in-script",
        dataType: "jsonp",
        contentType: "application/json; charset=utf-8",
        success: function (data) { PreviewVideo(data) }
    });

ここで、PreviewVideo(data) は、json 応答を解析し、それを使用して他のことを行う関数です。

私の問題は、ビデオ ID が正しくない (存在しない) 場合、それに関する通知を受け取っていないことです。error: function() { alert('error occured') }$.ajax に追加しようとしましたが、何もしません。

ビデオが正常かどうかを判断する方法を知っている人はいますか? ビデオが存在する場合は PreviewVideo(data) を呼び出し、それ以外の場合は VideoError() を呼び出しますか?

編集:無効なIDを入力すると、取得します

GET http://gdata.youtube.com/feeds/api/videos/TOwd30wXc-?v=2&alt=json-in-script&callback=jQuery17205096300751902163_1353530502856&_=1353530692237 400 (Bad Request) 

JavaScript コンソール (Chrome) で

前もって感謝します

4

1 に答える 1

0

jQuery フォーラムによると、不正なリクエストをキャッチすることはできません。つまり、statusCodeパラメーターerrorは役に立ちません (成功時に決定された関数名を呼び出すことが本当に想定されていることを考えると、これは理にかなっています)。

ただし、遅延オブジェクト インターフェイスを使用することによる回避策があります。例はこちら( jQuery フォーラムでKevin Bが提供)

以前の SO question最良の解決策と思われるタイムアウトを使用して解決できると考えて、私はそれを取り戻します。

于 2012-11-21T20:46:17.870 に答える