HTML:防止 POST 表单的 url 编码

标签 html forms encoding url-encoding

我有一个必须发布到 URL 的 HTML 表单。我希望表单像这样发布一个名为 DATA 的变量:

DATA: somevar=someval&somevar2=someotherval

我在执行此操作时遇到了问题。似乎默认情况下,形成 urlencode 数据,导致:

DATA: somevar%3Dsomeval%26somevar2%3Dsomeotherval

将表单的 enc-type 更改为“text/plain”会导致:

DATA: somevar=someval
SOMEVAR2: someotherval

有什么办法可以让表单实际上只发送上述数据吗?

最佳答案

我不确定您写这篇文章的目的是什么,也不确定防止对 POST 表单进行 URL 编码是否真的能解决您的问题。

但实际上,防止表单的 URL 编码是 100% 可能的,只需添加

enctype="text/plain"

表单的属性。

下面是一个没有 enctype text/plain 的请求示例和另一个带有它的请求。

LMint-PC droope # nc -kl 80
POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 168

%7B%22JobTypeIdentifier%22%3A3%2C%22ScheduledStart%22%3Anull%2C%22ScheduleType%22%3A%22Recurring%22%2C%22JobInputP
meters%22%3A%5B%5D%2C%22ignoreParam%22%3A%22=%22%7D^C
LMint-PC droope # ^C
LMint-PC droope # nc -kl 80
POST / HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:26.0) Gecko/20100101 Firefox/26.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: text/plain
Content-Length: 116

{"JobTypeIdentifier":3,"ScheduledStart":null,"ScheduleType":"Recurring","JobInputParameters":[],"ignoreParam":"="}

关于HTML:防止 POST 表单的 url 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5116219/

相关文章:

java - 从 html 获取将显示给用户的文本

javascript - 淡入淡出联系表 "Thank You"Div

javascript - 计算表单输入 onChange

python - Base64 对 AppEngine 上上传的数据进行二进制编码

encoding - BizTalk 2010 编码平面文件 UTF-8

R Studio 编码

html - 如何使用 css 在 bootstrap 中将文本 div 垂直居中放置在图像 div 旁边?

html - 在 Rails 网络应用程序中,单击链接后样式会发生细微变化

javascript - 尝试将样式设置为屏幕高度和宽度 CSS

angularjs - 为什么 id Chrome 扩展弹出窗口在输入自动完成建议点击时关闭?