【问题标题】:How to request a url with % witouth making it be %25? [closed]如何用 % 请求一个 url 而不是 %25? [关闭]
【发布时间】:2018-06-15 14:50:46
【问题描述】:

URL 编码将不安全的 ASCII 字符替换为“%”,后跟两个十六进制数字。

%   %25 %25

我有一个带有隐藏输入的表单,它的值类似于“%56756%234”,但是当我提交表单时,它会将我的 % 替换为 %25,它会变成“%2556756%25234”,而不是工作,可以用表单发送原始值吗?

【问题讨论】:

  • “并且不起作用”是什么意思?
  • 如果提交的值是 URL 编码的 % > %25 那么在服务器上应该是 URL 解码的 %25 > %
  • 可能正确的做法是在服务器上对其进行解码。通常,这已经通过网络事物为您完成了。
  • 我无法访问服务器,我忘了说
  • 除非您需要发送的值已经是 URL 编码的——而且看起来不是这样——这是不可能的,而且一开始就没有意义。您可能没有解释或不理解任务的某些内容。在不了解更多细节或服务器正在运行什么的情况下,无法回答这个问题。

标签: html forms encode


【解决方案1】:

URL 不能包含%,因为它被用作禁止符号的转义字符,所以他们用%25 对其进行编码,这就是它应该的方式。大多数与 URL 交互的方法都会自动对其进行编码和解码。如果您的框架或语言不是您使用的框架或语言,则可能有手动执行此操作的方法。

对于 JavaScript 来说:

encodeURIComponent()decodeURIComponent()

如果你使用 PHP 作为你的后端,它会是:

urlencode()urldecode()

【讨论】:

  • 问题是,我无法访问服务器端,我需要它那样运行,否则它不起作用:c
  • 那么你的服务器端必须确定解码它,否则你不能发送任何禁止的字符
  • 我看到其他网站做了一个没有隐藏输入的表单,并以某种方式将它放在我不知道如何的 url 中
  • 发送它的方法取决于你的服务器必须如何接收数据,你有控制权吗?
猜你喜欢
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多