我试图从一个不属于同一领域的网页中获取HTML代码。html文本被解析&总结一个食谱(食谱名称,主要成分,否)。在该页面上找到HTML代码。
然后,用户可以单击链接&转到域外的网页,查看菜谱。
我知道同样的-原产地-政策,但这是否适用于从国内领域以外的网页获取HTML代码?我想这和获取XML完全一样,所以这是合法的,是允许的,不是吗?
有什么方法可以从国内域以外的域获取HTML文本/代码吗?
使用Javascript & JQuery,其思想是通过让用户为每个菜谱执行请求并在客户端解析HTML来限制服务器请求和存储的数量。这就停止了服务器端的瓶颈&也意味着我不必通过服务器&删除过时的食谱摘要。
我对任何编程语言或API或其他任何的解决方案/建议开放
发布于 2011-12-14 08:49:56
使用任何AJAX库都无法完成您想要做的事情。浏览器的跨域策略将不允许您这样做。
但是您可以使用php (或任何其他服务器端语言)和AJAX的组合来实现这一点。创建如下php脚本:
<?php
$url=$_POST['url'];
if($url!="")
echo file_get_contents($url);
?>让我们说脚本的名字是fetch.php。现在,您可以从您的jQuery代码中抛出一个AJAX调用到这个fetch.php,它将为您获取fetch.php代码。
发布于 2011-12-14 08:04:19
不,这将不适用于客户端JavaScript。由于安全原因,浏览器会阻止它。您需要对本地服务器端脚本(例如,PHP)进行ajax调用,然后获取内容(例如,通过cURL )并返回所需的HTML。
发布于 2011-12-14 08:13:11
为了在您已经得到的答案中添加一些内容,我可以告诉您,html并不是用来作为“像服务一样”传输数据的方式。为此,XML或JSON通过SOAP或REST公开。
在您的场景中,考虑到技术和法律方面,我能想到的最佳方法是使用iframe显示外部内容,并引用iframe内容的来源,包括您已经在做的外部链接。
您仍然可以尝试服务器端方法来获取远程html,但是,这并不是一种干净的方法,当然也不是一种良好的实践,也可能是不合法的。
如果内容的作者希望它在其站点之外可重用,他可以通过服务或RSS / Atom提要提供未格式化的内容来表达这一意图。
https://stackoverflow.com/questions/8501127
复制相似问题