使用 JavaScript 获取另一个域中另一个页面的 HTML

发布于 2024-10-31 14:55:42 字数 103 浏览 3 评论 0原文

现在,我在 PHP 中使用curl 来获取某些远程网页的HTML 源代码。

有什么方法可以让我在 JavaScript 中获得某些跨域网页的相同 HTML 源代码吗?有教程吗?

Right now, I am using curl in PHP to get the HTML source code of some remote web page.

Is there any way I can get the same HTML source code of some cross-domain web page in JavaScript? Any tutorials?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

伏妖词 2024-11-07 14:55:42

我认为您需要了解 JSONP在js中访问跨域网页

https://stackoverflow.com/questions/tagged/jsonp?sort=votes

I think you need to know about JSONP to access cross-domain web pages in js

https://stackoverflow.com/questions/tagged/jsonp?sort=votes

月寒剑心 2024-11-07 14:55:42

问:这与发出 AJAX“GET http://otherdomain.com/page.html”打电话?

答:同源策略会检查对远程域的 AJAX 请求的 HTTP 响应标头,如果它们不包含合适的 Access-Control-Allow-Origin 标头,则请求将失败。

因此,有两种方法可以实现此目的:

  • 如果您控制其他域,则可以在 HTTP 响应中包含以下标头:

    访问控制允许来源:*
    (详细信息请参见 MDC

  • 如果不这样做,您将陷入实现服务器的困境-端代理(例如,这个简单的 PHP 代理)。

无论如何,一旦您实现了上述两个选项之一,您就只剩下一个简单的 AJAX 调用:

$.ajax({
  url: "http://mydomain.com/path/to/proxy.php?url="+
        encodeURI("http://otherdomain.com/page.html"),
  dataType: "text",
  success: function(result) {
    $("#result").text(result);
  }
});

Q. How is this any different than issuing an AJAX "GET http://otherdomain.com/page.html" call?

A. The same-origin policy checks the HTTP response headers for AJAX requests to remote domains, and if they don't contain a suitable Access-Control-Allow-Origin header, the request fails.

So, there are two ways to make this work:

  • If you control the other domain, you can include the following header in the HTTP response:

    Access-Control-Allow-Origin: *
    (details at MDC)

  • If you don't, you're stuck implementing a server-side proxy (for example, this simple PHP proxy).

In any case, once you implement one of the two options above, you're left with a simple AJAX call:

$.ajax({
  url: "http://mydomain.com/path/to/proxy.php?url="+
        encodeURI("http://otherdomain.com/page.html"),
  dataType: "text",
  success: function(result) {
    $("#result").text(result);
  }
});
你与清晨阳光 2024-11-07 14:55:42

我刚刚发现的这个解决方案可能像其他解决方法一样有用...

http://www.ajax-跨域.com/

This solution I just found might be of use like the other workarounds...

http://www.ajax-cross-domain.com/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文