我有一个 HTML 表单,必须将其发布到 URL。我希望表单能够发布一个名为 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 的请求和另一个包含 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":"="}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)