【问题标题】:Forwarding POST data转发 POST 数据
【发布时间】:2009-07-09 14:35:21
【问题描述】:

我有一个网站,其中包含用户可以输入的表单。我希望它可以替代具有相同字段的 3rd 方网站(Autotask)表单。通常,我只需将表单中的操作转到第 3 方表单指向的位置,然后为我自己的字段设置所有相同的 id/name 值,但这有几个问题:

Autotask 的表单不仅仅是简单的多字段表单。他们导入了至少 15 个 Javascript,这些 Javascript 让一些神奇的、无法识别的事情发生,而且它们非常难以阅读和理解。所以这会导致两个问题,一个是表单需要很长时间才能加载(4 个字段需要 5 秒左右),第二个是如果 Autotask 改变了任何东西,我需要重做整个表单(非常乏味和crapshoot-y,我已经需要做两次了)。

为了使加载时间更加透明,我将 Autotask 表单的副本放在 iFrame 中。这样,网站的其余部分就可以与我必须在 Autotask 的登录过程中包含的大量脚本分开加载。

理想情况下,我想做的就是在我的网站上使用我想要的任何名称和配置的这 4 个字段,然后将该 POST 数据发送到我自己的 PHP 脚本,该脚本将自动(并且透明地)提交数据直接通过 Autotask 的表单在适当的字段中。如果我需要使 id/name 匹配,那没关系。我可以在这个网站上使用 HTML、Javascript 和 PHP。

编辑: Autotask 为他们的登录提供了内置的 GET 处理程序。您会注意到登录时有一个客户端 ID(它将是 URL 中的“ci”变量)。如果您在此处发送带有客户端 ID 以及“用户名”和“密码”变量的 GET 请求,那么 Autotask 的登录页面将立即将您转发到客户端页面,如果成功登录。

【问题讨论】:

  • JavaScript 不可能让“神奇而无法识别”的事情发生。您不能加载 Firebug 并查看从 JavaScript 发布的确切值吗?

标签: php javascript html


【解决方案1】:

我认为很多人通常会建议不要这样做,因为您有点在入侵他人应用程序的功能。在这种情况下,我只建议不要这样做,因为它们(Autotask)已经有一个面向外部的 API。 http://www.autotask.com/press/news_and_press_releases/071006.htm

我认为你最好只是利用它并开发一些在他们的系统限制内运行良好的东西。

【讨论】:

    【解决方案2】:

    一种真正的迂回方式是让您的页面加载一个带有一些通用 ID/名称的表单。有一个 php 脚本可以抓取他们的页面以获取正确的 id/name,并将它们 ajax 到您的表单中。

    这样您就可以避免在 iframe 中加载他们的内容或在初始页面加载时抓取他们的页面,并且他们会更改 ID/名称,您将始终保持最新状态。

    【讨论】:

      【解决方案3】:

      我可以写一篇大文章来解释这一点,但我真的认为这是让someone else's words do the work 的最佳时机。

      【讨论】:

        【解决方案4】:

        Autotask 的表单不仅仅是简单的多字段表单。它们导入了至少 15 种 Javascript,这些 Javascript 让一些神奇的、无法辨认的事情发生,而且它们非常难以阅读和理解。

        对我来说,这听起来像是反垃圾邮件措施?如果是这样,那么它们可能会随着时间而改变。

        所以:关注NateDSaint's advice

        【讨论】:

          【解决方案5】:

          作为后续,事实证明 Autotask 具有 GET 处理程序,因此您可以通过 GET 发送信息。问题解决了。

          【讨论】:

          • 这是个好消息,但您可能应该将此作为编辑附加到您的问题中,或者将其作为评论,以便其他寻找相同答案的人可以快速了解它。
          猜你喜欢
          • 2023-02-01
          • 2023-02-02
          • 2013-03-30
          • 2011-01-14
          • 2021-07-08
          • 2011-10-18
          • 2013-08-24
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多