3

我希望分享一个页面的链接,但是该页面的内容只能通过提交表单获得。

下面是一个示例:我想查看加利福尼亚州为美国造币厂销售金条的零售商列表。但是我必须提交表格才能获得结果: http ://www.usmint.gov/mint_programs/american_eagles/index.cfm?action=lookup

我希望看到的是一个中介站点,它基本上可以作为执行我的表单 POST 的代理。因此,我可以从该站点共享我的链接,任何单击该链接的人都会看到 POST 表单的输出(它是使用目标 URL 和我之前告诉 post-agent 站点使用的表单数据制作的)。

因此,这与 URL 缩短服务的需求类似,我有一个 URL(例如 post-agent.com/ca-bullion ),可以发布在 Twitter、Digg 或电子邮件中。然而,与 URL 缩短服务不同的是,由于明显的浏览器安全限制,生成的页面仍然会显示来自中介(例如 post-agent.com )的 URL。

因此,使用我上面的示例,post-agent.com/ca-bullion 请求仅响应以下结果:

$ lwp-request -m POST www.usmint.gov/mint_programs/american_eagles/index.cfm?action=lookup
state=CA&submit=GO
[Ctrl-D]

是的,输出会很难看(除非图像 URL 的链接被重写),但至少页面内容/数据只需单击一下即可。

这样的事情存在吗?

如果没有,应该吗?

4

1 回答 1

0

非常有趣的想法。

按照您描述的方式,该服务必须充当一种代理。

这存在一些问题,例如,如果 POST 请求的结果设置了 cookie。此外,请求的来源将是“代理”服务器,而不是用户的 IP。该服务还必须通过潜在的大量流量。

一个更可行的实现可能是为页面提供表单。表单将具有method="POST"来自 URL 预设的变量。该表单将通过 Javascript 自动提交(使其对用户几乎不可见)或手动提交。

并非每个服务都可以使用该方法,因为您必须期望某些站点在表单和其他检查中使用一次性令牌以防止跨站点请求伪造。但是对于像您展示的那样简单的服务,这可能会很好。

然而,我发现很难让最终用户轻松使用它。他们如何在不使用浏览器工具检查发布的网站的情况下将他们的 POST 请求发送到您的表单中?

于 2010-09-15T04:39:38.743 回答