Php 如何使用javascript/jquery获取url?

Php 如何使用javascript/jquery获取url?,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我需要用javascript/jquery而不是php获取url 我已经读到,如果你有一个php代理,你可以这样做,但这意味着它仍然在通过php。因为获取它的仍然是服务器的ip 可以只使用前端获取url,然后使用客户端的ip获取url吗?问题是jQuery将使用AJAX获取url,而AJAX不会跨域操作,因为潜在的安全性(根据) 但是,有一些方法可以模拟这种情况,如果在iframe中加载页面,则可以通过在iframe上使用innerHTML检索数据。下面是一个使用jQuery的示例脚本:存在一个

我需要用javascript/jquery而不是php获取url

我已经读到,如果你有一个php代理,你可以这样做,但这意味着它仍然在通过php。因为获取它的仍然是服务器的ip


可以只使用前端获取url,然后使用客户端的ip获取url吗?

问题是jQuery将使用AJAX获取url,而AJAX不会跨域操作,因为潜在的安全性(根据)

但是,有一些方法可以模拟这种情况,如果在iframe中加载页面,则可以通过在iframe上使用innerHTML检索数据。下面是一个使用jQuery的示例脚本:

存在一个用于AJAX请求的脚本。这可以防止(比如)该站点上的Javascript向gmail.com发出请求(使用cookie)、读取电子邮件并将其上载到StackOverflow服务器。stackoverflow.com上的Javascript只能向该域上的页面发出AJAX请求

正如您所看到的,这对安全至关重要。请求必须由运行在web服务器上的代理发出——可以使用PHP,但还有其他解决方案。例如,是一个AJAX库,它与服务器上运行的Perl脚本通信,以模拟其他域的AJAX请求

也可以通过javascript include(脚本标记)、image标记等在其他域上发出请求。但是在这些情况下,您无法读取页面的内容

使用iframe也无法做到这一点:脚本无法看到iframe的内部,除非它们与脚本位于同一个域中


简而言之,使用代理。

现代浏览器不允许您获得跨域框架的
innerHTML
。没错,您只能通过片段与iframe通信。我的印象是这仍然是可能的。这意味着我必须获取带有服务器ip地址的页面?没有办法通过客户端的ip获取结果,然后将结果发送回我的服务器?但是google maps api不允许我们只从javascript发出请求,从而从客户端的ip获取结果吗?那么为什么会这样呢?使用谷歌地图API,您可以从谷歌服务器加载Javascript(没有问题——您可以运行Javascript,只是看不到文件的内容)。平铺图片等都在谷歌的服务器上,但总是允许链接到外部图片。对于一些事情(路由、地理编码),API通过编写带有特殊请求的标记与Google“对话”,并立即执行返回的javascript,例如将一些变量设置为一些JSON数据。这种方法很聪明,但只有在另一台服务器合作的情况下才有效。如果您对跨域JSON请求感兴趣,请注意这不适用于一般的web请求。