1

この問題に対する答えが見つかりません。

YouTubeのビデオタイトルを取得しようとしています(もちろんWordpressから取得しますが、JavaScriptから取得したいと思います)。私のコードは次のようになります。

$.ajax({
    url: "http://youtube.com/get_video_info",
    data: {video_id : v_arr[i]},
    type: 'GET',
    complete: function(jqXHR, res){
        if(jqXHR.readyState === 4) {
            alert(res);
        }
        alert(jqXHR.statusText);
    }
});

問題:「完了」では、常にreadyState 0が表示され、statusTextの「エラー」を除いて有用なエラーメッセージが表示されません。

4

2 に答える 2

0

URLをサーカディアンが提供するものに変更しました。問題は i 変数にもありました。ご覧のとおり、これはすべてループ内で行われています。したがって、完全なコールバックが発生したとき、「i」にはループからの最後の値が既にありました...そのため、v_arr[i] にアクセスすると、「未定義のインデックス」の問題が発生しました。

解決策は「temp i」です。

for(var i=0; i<v_arr.length; i++) {
    var temp_i = i;
    $.ajax({
        url: "https://gdata.youtube.com/feeds/api/videos/"+v_arr[temp_i],
        //data: {video_id : v_arr[temp_i]},
        type: 'GET',
        complete: function(jqXHR, res){
            if(jqXHR.readyState === 4) {
                alert(res);
            }
            alert(jqXHR.statusText);
        }
    });
}
于 2013-03-12T08:53:55.460 に答える
0

提供された ajax を実行してみましたが、301 リダイレクト応答が返されました。

YouTube APIを見ると、https://gdata.youtube.com/feeds/api/videos/成功を返すURLが表示されます

于 2013-03-11T09:24:39.407 に答える