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参数将无济于事(这是有道理的,因为它确实应该在成功时调用每个确定的函数名称)。

但是,使用延迟对象接口可以解决此问题,例如此处 (由Kevin B在 jQuery 论坛上提供)

我收回它,认为它可以使用超时来解决,这似乎是上一个SO question的最佳解决方案

于 2012-11-21T20:46:17.870 回答