成功的加载是这样的:
http://gdata.youtube.com/feeds/api/videos/N7m86aMNjlQ?callback=jsonp1335008664824&alt=json-in-script
但是,当视频是私有视频或不存在时,它只会返回一条带有 http 错误状态代码的消息。
http://gdata.youtube.com/feeds/api/videos/zkZBEnBjOjY?callback=jsonp1335008664915&alt=json-in-script
我创建了一个示例唯一的回调函数名称,例如"jsonp1335008664824",并将 url 作为脚本标签的 src 附加,并在脚本加载时捕获该函数。但是,如果它返回错误,youtube 不会将内容作为回调函数返回,我无法捕获其中任何一个。因为脚本标签没有"onerror"属性,我什至不知道它是正在加载还是返回了 404 或 503 状态代码等错误。
似乎唯一要处理的方法是在附加脚本标签时设置超时功能。但是,这不是一种可靠的方法,所以我正在寻找另一种选择。我知道即使我可以捕获状态代码,我也无法收到错误消息,但正如我所看到的,只有两个状态代码和两个错误,分别是"找不到视频"的 404 或"视频是私有的"的 503。
我从Youtube开发者论坛得到了答案。因此,jsonc 是处理此类请求的更好方法。这个发展的要求变成了这个布局:http://gdata.youtube.com/feeds/api/videos/zkZBEnBjOjY?callback=jsonp1335008664915&alt=jsonc&v=2
正如我从这里学到的,我们可以在Youtube Data Api中使用XMLHTTPRequest。这太棒了,因为我们可以从现在开始发出 POST 和 PUT 请求。