从另一台服务器上的网站获取内容

时间:2010-04-06 20:41:44

标签: php javascript jquery

我基本上想要做的是从网站获取内容并将其加载到另一个网站的div中。到目前为止,这应该没问题。 问题是,应该获取的内容位于不同的服务器上,我没有源访问权。

我更喜欢使用jQuery JavaScript的解决方案。 我可以使用.htacces重定向来使用客户端(js)技术从远程服务器获取内容吗?

我也会选择其他解决方案。 非常感谢提前!

4 个答案:

答案 0 :(得分:3)

由于同源策略,您无法对其他域执行AJAX调用。您可以向DOM添加<script>标记,该标记指向另一个域上的Javascript文件。如果这个JS文件包含一些你可以使用的JSON数据,你就可以了。

唯一的问题是你需要以某种方式获取 JSON数据,这是JSON-P回调进入图片的地方。如果外部资源支持JSON-P,它会给你一些看起来像

的东西
your_callback( { // JSON data } );

然后在回调中指定代码。

有关详情,请参阅JSONP

如果JSONP不是一个选项,那么最好的办法就是获取数据服务器端,比如说每隔几分钟就有一个cron作业,然后将它存储在你自己的网站上。

答案 1 :(得分:1)

您可以使用服务器端 XMLHTTP请求从其他服务器获取内容。然后,您可以在服务器上进行解析(A.K.A屏幕抓取),并将您想要的部分与您的网页一起提供。

答案 2 :(得分:0)

如果来自其他网站的内容只是您要在您的网站上显示的HTML文档,您还可以使用iframe将其拉入。由于浏览器安全性,您将无法访问其任何内容规则。

答案 3 :(得分:0)

您可能需要“抓取”所需的数据并将其存储在服务器上。

这是关于如何从外部网站缓存数据的great tutorial。它实际上是为了获取和存储XML而编写的,因此需要进行一些修改。此外,如果您的网站不允许file_get_contents,则可能需要对其进行修改才能使用cUrl