0

概括:

我希望将网页的前 4kB(实际上是 MP3,但不重要)从另一个域保存到 JavaScript 中的变量,最好不使用 jQuery,因为我的页面上的其他任何内容都不需要 jQuery。这是我之前在 python 应用程序中使用的,以实现相同的目标:

host = 'http://www.wikipedia.org/somepath/tosome/file.mp3'
req = urllib2.Request(host, headers={'User-Agent' : "Magic Browser"})
response = urllib2.urlopen(req).read(4*1024)

.

背景:

我的目标是只获取几千字节的 MP3 文件(来自不同的域),这样我就可以从中剥离 ID3 信息。然而,经过大量的谷歌搜索,并弄乱了 xmlhttprequests、jsonp 和其他一些东西,我仍然找不到满足我所有要求的东西。阅读这篇文章 - 将 .ajax() 与 JSONP 结合使用的基本示例? 真的很有帮助,但我似乎无法弄清楚如何限制类似的回调大小(也许限制脚本源大小?)而且我真的不想包含 jQuery 库。

非常感谢任何帮助!

4

1 回答 1

1

注意:我发布了一个包含 javascript + php 的解决方案。但是您可以使用任何其他编程语言,例如 python(只有语法更改。不是逻辑)。

. 使用 Ajax 在您的服务器中调用 php 文件

. 在您的服务器端 php 文件中:

使用 curl 读取跨域 html。

$url = "http://www.google.com;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);

. 然后使用 PHP 的 DOM 对象模型来解析 HTML - ( http://php.net/manual/en/domdocument.loadhtml.php )。

例如:

$domObj = new DOMDocument;
$domObj->loadHTML( $output);
$divs = $domObj->getElementsByTagName('div');

. 将 o/p html 内容返回给客户端。

. 最后将 ajax 响应 (html) 收集到本地 javascript 变量中。

于 2013-01-12T17:10:43.150 回答