如何在不加载浏览器的情况下获取其他页面的内容

时间:2013-04-19 10:37:33

标签: php jquery asp-classic

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

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

示例:
abcd.asp包含一个包含<input name="regno"/>和提交按钮的表单。表单提交给自己,结果名称,出生日期和标记在iframe中以表格格式返回。

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

3 个答案:

答案 0 :(得分:1)

最简单的方法:

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

答案 1 :(得分:0)

您应该使用AJAX来执行此任务。它在不重新加载页面的情况下加载特定的数据部分。有关什么是ajax的更多信息是here

答案 2 :(得分:0)

您最好的选择是使用jQuery's ajax method。要使其适用于不同的域,您需要启用跨域支持。这在jQuery中非常简单:

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

现在您可以向其他域发出请求。当然,该域上的服务器也必须接受跨域请求。 ;)

选项1 - HTTP GET&amp; JSONP

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

选项2 - HTTP POST

如果您使用http post发出请求,可以直接使用jQuery.post()。启用交叉域后,服务器接受您的请求,这应该是开箱即用的。