如何在用户的浏览器中使用JavaScript向其他服务器发出请求(即从任何所需服务器获取页面)?对于像XMLHttpRequest这样的方法,有什么限制可以阻止这种情况,有没有办法绕过它们或其他方法?
这是一个普遍的问题,特别是我想检查一系列随机网站并查看它们是否包含某个元素,因此我需要网站的HTML内容而不下载任何其他文件; 所有这些都在JavaScript文件中,在服务器上没有任何转发或代理机制.
(注意:一种方法是使用Greasemonkey及其GM_xmlhttpRequest.)
你应该看看jQuery.它具有丰富的AJAX功能,可以让您完成所有这些功能.您可以加载外部页面,并使用直观的类似CSS的选择器解析它的HTML内容.
使用$ .get()的示例;
$.get("anotherPage.html", {}, function(results){ alert(results); // will show the HTML from anotherPage.html alert($(results).find("div.scores").html()); // show "scores" div in results });
对于外部域,我必须编写一个本地PHP脚本,作为中间人.jQuery将调用本地PHP脚本传入另一个服务器的URL作为参数,本地PHP脚本将收集数据,jQuery将从本地PHP脚本读取数据.
$.get("middleman.php", {"site":"http://www.google.com"}, function(results){ alert(results); // middleman gives Google's HTML to jQuery });
给middleman.php一些东西