我有以下代码,其中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)中
提前致谢
答案 0 :(得分:0)
根据the jQuery forums,您无法捕获错误的请求。也就是说,statusCode
或error
参数不起作用(这是有道理的,因为它确实应该在成功时调用一个确定的函数名称。)
但是,通过使用延迟对象接口example here (由jQuery论坛上的Kevin B提供) ,可以解决问题
我收回它,认为可以使用best solution上的previous SO question超时来解决。