我需要通过jQuery/AJAX从外部URL获取特定的DOM元素(通过ID)。我知道这违反了同源策略,但是当我特别抓取HTML (而不是JSON)时,我找不到一种可以接受的解决方法。
例如,我在website1.com上,我需要抓取并输出website2.com的# the元素的内容。如何使用jQuery完成此操作?
编辑:似乎是Why cant I load an external resource from jQuery load method?的副本,它有一个很好的答案。
发布于 2011-02-26 06:58:45
(回答我自己的问题):
请注意,由于同源策略,这在浏览器中是不可能的。为了绕过它(就像Pekka在上面的评论中说的那样),你通常会创建一个所需内容的本地代理。因此,如果你在website.com上工作,你需要获取google.com的一部分,你可以创建website.com/google,它将只是通过一些服务器端代码的google.com的克隆。然后你就可以自由地做任何你想做的事情了,因为它在你的域中。
我遇到的问题是,我正在处理一个BlackBerry WebWorks项目,这意味着我只能使用HTML/CSS/JS,而且我实际上并不在网站上,所以代理是不可能的。幸运的是,WebWorks允许您向您创建的每个应用程序添加受信任的域,这意味着同源策略不适用于这些域。
发布于 2012-02-03 13:20:55
假。只要服务器支持JSONP,该策略就不是绝对的。Google JSONP Jquery,您将看到大量的工作示例在做您想做的事情:通过ajax从您自己的域以外的域返回webservice数据。
https://stackoverflow.com/questions/5109839
复制相似问题