繁体   English   中英

如何使用Javascript / jQuery从另一个域加载内容?

[英]How to use Javascript/jQuery to load the content from another domain?

我需要创建一个JavaScript应用程序,该应用程序可以显示来自另一个域(当然是另一个大网站)的内容。 目前不需要进一步解释DOM树。 只会再有十个人使用它。

我可以通过php的get_content函数使其工作。 但这很慢,因为它在服务器端运行。 我调查了任何来源,但无法正常工作。 最好不要接触任何来源,因为我们已经广泛使用它,而且我们没有太多现金可花。 有人可以帮忙吗? 顺便说一句,由于大型网站将其阻止,因此iframe并不是一种选择。 代码如下。 诚然,我从另一个stackoverflow答案中获取了它。 先感谢您!

顺便说一句。 另一位工程师告诉我,如果我使用扩展名.hta而不是html,则将解决同源策略问题。 我尝试了一下,但没有成功。 但是我想知道我做对了吗。

<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
function myCallbackFunction(myData) {
    $(function() {
        $("#test").contents().find('html').html(myData.contents);
    });
}
</script>
<script src="http://anyorigin.com/get?url=http://http://www.amazon.com/dp/B001F7SGHQ/&callback=myCallbackFunction"></script>
</head>
<body>
</body>
<iframe id='test' style='width: 100%; height: 100%'>

</html>

尝试类似以下的方法。

var invocation = new XMLHttpRequest();
var url = 'http://http://www.amazon.com/dp/B001F7SGHQ/&callback=myCallbackFunction';

function callOtherDomain() {
  if(invocation) {
    invocation.open('GET', url, true);
    invocation.withCredentials = true;
    invocation.onreadystatechange = handler;
    invocation.send(); 
  }
}

添加[withCredentials = true]将启用HTTP标头“ Access-Control-Allow-Origin:”。

还有另一个好的解决方案,可能是您需要通过PHP来使用名为PHP的类。

简单的HTML DOM解析器

此类可以复制网站的所有源代码,您可以将其保存在具有所需扩展名的服务器中,还可以在保存之前修改所需的内容,并且此类具有完整的文档(您需要在PHP5 POO中很出色)。上课链接

http://simplehtmldom.sourceforge.net/

为了使您的网站更快,您可以使用现金系统进行一项高级操作,以便每天一次,1小时或12小时一次从网站下载源并将其保存在主机中。 我希望这能给您您所需要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM