【问题标题】:Using GET request instead of POST one使用 GET 请求而不是 POST 请求
【发布时间】:2023-10-18 18:23:01
【问题描述】:

问题是我要填写一张表格。它是通过 POST 请求提交的。但从技术上讲,我只能使用 GET 请求(传递带有 GET 参数的 URL)。而且我无权访问该站点(需要填写表格)所在的服务器。

我尝试在 GET 请求中使用 POST 参数,但没有成功。我想到的另一件事是将 GET 请求发送到我自己的服务器,它将执行所需的 POST 请求。但是我需要从我的 IP 提交请求,而不是从服务器的 IP 提交……

任何人都可以就解决这个问题提供一些建议吗?

【问题讨论】:

  • 您使用的是什么服务器端技术?
  • 数据如何从A点传输到B点?对发布的数据做了什么?当您说“技术上我只能使用 GET 请求”时,是什么在技术上阻止您使用 POST?
  • Му 服务器正在运行 Apache,但 IP 问题使我的服务器无用。
  • 我不能使用 POST 请求,因为我在客户端只有浏览器的地址栏。如果您的意思是这样,发布的数据将保存在数据库中。

标签: post get


【解决方案1】:

这是作业吗?您无法使用 POST 似乎很奇怪。

不管怎样,

最好的方法是覆盖提交按钮的 onclick 事件; JS 函数可以轮询您要提交的字段。然后在值上使用 encodeURIComponent() 以将它们正确发送到您的网络服务器。

在这里您可以使用 get?element=value&.... 请求加载新页面。

http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp

【讨论】:

  • 这不是家庭作业 :) 问题是我无法访问表单所在页面的源。但我想把链接,提交表格,给另一个人。这个人所拥有的只是一个类似浏览器的地址栏。
  • 不用担心;我认为如果你只是覆盖 onclick 你可以实现你正在寻找的东西。混合 URL 参数和 POST 参数存在某些问题(至少我知道在 Perl CGI 中就是这种情况),如果你得到一个 POST,它不会解析出任何 GET 参数。因此,您需要在服务器端进行尝试,以确保执行 POST/GET 会产生相同的结果。
  • 抱歉,我的问题可能表述得不够清楚。我无权访问该站点(需要填写表格)所在的服务器。我所拥有的只是其他一些装有 Apache 和其他东西的计算机(我可以完全访问它)。其他人有一个地址栏并想提交一个表单。
  • 而且,正如我所写,具有相同参数的 GET 在 POST 中不起作用。
【解决方案2】:

Firefox 允许您将带有至少一个常规文本输入字段的 HTML 表单(GET 或 POST)转换为搜索关键字书签,尽管我不确定从一个输入和导出单个书签是否容易将 Firefox 复制到另一个。

【讨论】:

  • 很遗憾,没有文本字段...不过,非常感谢,我会考虑一下这个想法。
  • 好吧,仍然可以通过在 Firefox 之外编辑 places.sqlite 来创建 POST 书签。