如何使用Javascript / jQuery加载来自其他域的内容?

时间:2014-07-19 00:26:06

标签: javascript php jquery html ajax

我需要创建一个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>

2 个答案:

答案 0 :(得分:0)

尝试以下内容。

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标头&#34; Access-Control-Allow-Origin:&#34;。

答案 1 :(得分:0)

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

  

简单的HTML DOM解析器

这个类可以复制网站的所有来源,你可以将它保存在你的服务器中,你也希望你可以在保存之前修改你需要的东西,这个类有一个完整的文档(你需要在PHP5 POO中做得好) ) 这是一个类

的链接

http://simplehtmldom.sourceforge.net/

并且有一个很好的先进的东西,你可以做到让你的网站更快,是使用现金系统,所以你可以从网站下载来源一天一次或1H或12小时, 并将其保存在您的主机中。 我希望能给你所需要的东西。