如何在不加载浏览器的情况下获取另一个页面的内容


How to get the content of another page without loading in browser

上下文:
另一个网站中有一个包含搜索表单的asp页面。提交带有搜索值的表单后,该页面会在iframe中显示搜索结果。

问题:
我想在我的页面中使用返回的结果,而不在浏览器中加载该页面。我已获得其他网站管理员的许可。我知道php和jQuery。我应该如何继续?

示例:
abcd.asp包含一个表单,该表单包含<input name="regno"/>和一个提交按钮。表单提交给自己,结果Name、出生日期和Marks以表格格式返回到iframe中。

注意:
我有一个具有相同<input>的页面,提交后将使用上面的asp页面,获取详细信息并在我的页面中显示。

最简单的方法:

  1. 使用jQuery通过AJAX将您的页面提交到本地PHP文件
  2. 当本地PHP文件收到请求时,对远程页面执行curl post请求并获取结果
  3. 在本地PHP脚本中返回这些结果,以便AJAX请求可以使用这些结果
  4. 您的ajax请求现在具有远程内容,所以只需使用jQuery将它们推送到文档中即可

您应该使用AJAX来执行此任务。它在不重新加载页面的情况下加载特定的数据段。关于ajax的更多信息,请点击此处

您的最佳选择是使用jQuery的ajax方法。要使其适用于不同的域,您需要启用跨域支持。这在jQuery:中非常容易

$.support.cors = true; // enable cross domain support

现在,您可以向另一个域发出请求。当然,该域上的服务器也必须接受跨域请求。(

选项1-HTTP GET&JSONP

正如Twisted1919所指出的,如果您想发出HTTPGET请求,就必须使用jsonp。如果你不熟悉jsonp,它需要一些阅读才能理解这个概念。但是在jQuery中对此有很好的支持(如jQuery.ajax((中所述(

选项2-HTTP POST

如果您使用http-post来提出请求,您可以简单地使用jQuery.post((。启用cros域后,服务器接受您的请求,这应该是开箱即用的。