检查youtube视频ID是否存在Javascript

时间:2012-11-21 20:33:13

标签: javascript ajax api youtube response

我有以下代码,其中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(数据),否则 - 调用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)中

提前致谢

1 个答案:

答案 0 :(得分:0)

根据the jQuery forums,您无法捕获错误的请求。也就是说,statusCodeerror参数不起作用(这是有道理的,因为它确实应该在成功时调用一个确定的函数名称。)

但是,通过使用延迟对象接口example here (由jQuery论坛上的Kevin B提供) ,可以解决问题

我收回它,认为可以使用best solution上的previous SO question超时来解决。