如果任何人都可以对任何此过程有所了解,那就太好了。这是交易。给定Hulu视频URL(例如'www.hulu.com/watch/154344'),我希望能够使用Javascript(使用jQuery即可)检索嵌入URL(即'http://www.hulu.com/embed.html?eid=wvqxnyjrtho0a6osltsuig')。
另外,正如您所知道的,我正在localhost上的开发环境中工作。
在我看来,最简单的方法是使用增强服务。 Hulu提供了oembed服务,已在on the ombed page中进行了演示。纯粹基于装饰页面上显示的示例,此嵌入信息的url格式应为“ http://www.hulu.com/api/oembed.xml?url=http%3A//www.hulu.com/watch/154344”。如果我在浏览器中打开它,那行得通!
所以我试着像这样运行Javascript:
var url = 'http://www.hulu.com/api/oembed.xml?url=http%3A//www.hulu.com/watch/154344';
$.getJSON(url, function(data) {
alert(data.embed_url);
});
但是,那是行不通的。我收到一条错误消息:
XMLHttpRequest cannot load http://noembed.com/embed?url=http%3A//www.hulu.com/watch/154344. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
因此,我查找了一些东西。看来我需要使用JSONp。我也读了a bit more about JSONp。启用JSONp所需要做的就是将URL格式更改为此,在最后添加
callback=data
:http://www.hulu.com/api/oembed.xml?url=http%3A//www.hulu.com/watch/154344&callback=data。没有骰子。它仍然给我同样的错误。我究竟做错了什么?
最佳答案
当将JSONP与jQuery结合使用时,请勿给回调函数起一个名字。使用?
,jQuery将为您替换一个名称。
var url = 'http://www.hulu.com/api/oembed.xml?url=http%3A//www.hulu.com/watch/154344&callback=?';