【问题标题】:how can I retrieve an html document from a url from javascript?如何从 javascript 的 url 中检索 html 文档?
【发布时间】:2010-02-10 06:22:29
【问题描述】:

我有一个 url,我想检索在 javascript 变量中访问 url(页面的所有代码)时生成的 html dom。

我该怎么做?我猜是一个 html 获取或发布?谁能举个jQuery的例子吗?

每次我像这样执行 $.get 或 $.post 时:

$.get("http://www.google.ca", function(result) { alert(result); alert($(result).html()); });

$.post("http://www.google.ca", function(result) { alert(result); alert($(result).html()); }, "xml");

每次调用中的第一个警报显示为空白,第二个显示为空。有什么想法吗?

谢谢,
马特

【问题讨论】:

    标签: jquery dom post httpwebrequest get


    【解决方案1】:

    由于same origin policy,您只能(以这种方式)从您自己的域中获取文档。

    【讨论】:

    • 我以前肯定做过……只是不记得具体是怎么做的了。我发布的这个网站返回一个生成的页面作为响应,所以我认为这是一个帖子......我只是因为某种原因不断返回 null。同源策略不适用,我只想拉入 html dom,这样我就可以搜索 dom 并提取我正在搜索的信息。
    • 在 javascript 中唯一可以从不同来源提取的东西是 javascript。对于 html,您无法从其他域中获取。如果可以,那么没有人可以免受 xsrf 的伤害。如果你曾经有过这个工作,它可能在你的浏览器认为是“可信”的本地文件中。标准的解决方法是让您的服务器充当中介。即:您的客户端代码要求您的服务器获取您想要的页面。这很有效,因为您的服务器与您的 js 的来源相同。
    • 后端代码呢?如果我在 C# 中做到这一点?因为上次我这样做我相信它是用 php ......这是后端代码不是吗?
    • 在您的服务器上,您可以从任何您想要的 URL 获取。所以,是的,如果你所说的“后端代码”是指在你的服务器上运行的代码,它就会在那里工作。只要不在浏览器中运行,C# 或 PHP 或其他任何东西都可以。 (这听起来可能过于迂腐,但在浏览器中的小程序中运行的 Java 代码与浏览器上的 JavaScript、服务器上的 Java 甚至 服务器上的 JavaScript具有完全相同的“同源”限制>,不受限制。)
    【解决方案2】:

    $("#divId").load("documentname.html");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 2011-08-21
      • 2014-10-28
      相关资源
      最近更新 更多