如何将外部页面的内容作为javascript对象获取?

如何将外部页面的内容作为javascript对象获取?,javascript,json,fetch,Javascript,Json,Fetch,因此,我知道有很多方法可以将外部页面的内容获取为字符串(例如使用PHP),但是有没有一种方法可以将其获取为javascript/JSON对象(例如DOM窗口对象),以便我可以轻松地对其进行操作?我在考虑也许使用iframes,但一如往常,相同的原产地政策适用。我觉得这可能是不可能的设计,但我有兴趣尝试。有人对此有创造性的解决方案吗?我不想使用闪光灯或荧光灯(因为iPhone的问题)。这在jQuery中是可能的 否。出于安全原因,您只能访问运行JavaScript的同一域中的页面。这被称为。只有通

因此,我知道有很多方法可以将外部页面的内容获取为字符串(例如使用PHP),但是有没有一种方法可以将其获取为javascript/JSON对象(例如DOM窗口对象),以便我可以轻松地对其进行操作?我在考虑也许使用iframes,但一如往常,相同的原产地政策适用。我觉得这可能是不可能的设计,但我有兴趣尝试。有人对此有创造性的解决方案吗?我不想使用闪光灯或荧光灯(因为iPhone的问题)。

这在jQuery中是可能的


否。出于安全原因,您只能访问运行JavaScript的同一域中的页面。这被称为。

只有通过服务器才能做到这一点。公开一些AJAX方法来获取外部网页(或一个特定网页),并让服务器而不是客户端来完成这项工作

添加:

对于PHP,您可以这样做:

  • 创建文件
    getremotecontent.php
  • 使用获取所需的URL(在PHP文件中):

  • 使用将结果字符串编码为JSON对象

    $pagejson = json_encode($pagestr);
    
  • 接下来,发送适当的标题:

    header('Cache-Control: no-cache, must-revalidate');
    header('Content-type: application/json; charset=utf-8');
    
  • 最后,发送编码字符串的内容:

    print $pagejson;
    
  • 在Javascript中,向
    getremotecontent.php
    发出Ajax(XHR)请求。服务器将获取您的网页,将其编码为JSON格式,并返回给您在客户端处理


  • 请解释你的主要任务,你想实现什么?@Max,我试图从外部页面(如www.google.com或www.ball.com)提取具有特定类的div的内容。。。。但只适用于同一域中的页面。既然有办法将页面获取为字符串,为什么没有办法将其获取为对象?还有,有什么东西可以将字符串解析为对象吗?我很确定你不能将页面作为字符串获取-这将是SOP中的一个漏洞。但是如果可以,创建一个
    ,然后创建
    $(#page).html(字符串)-它不会正确呈现,但您应该能够检查DOM。如果不起作用,试着去掉标题和所有
    script
    元素。这是个好主意。我知道如何用PHP将页面作为字符串,所以我会尝试一下。我不太明白你在说什么,你能提供一个简短的代码大纲吗?在你的服务器端代码中,不管是什么(Java/PHP/C#/etc),你都需要公开一个AJAX方法。然后,您可以从Javascript调用对公开方法的AJAX调用。然后,该方法本身将下载所需的网页,但是,这将发生在您的服务器上,因此域限制策略将不适用。我不知道如何“公开”一个方法。@Ben7005您的服务器语言是什么?非常抱歉,等待太久,我使用PHP。
    print $pagejson;