HTML:阻止POST表单的url编码

Mal*_*ala 3 html forms encoding url-encoding

我有一个HTML表单,必须发布到URL.我希望表单POST一个名为DATA的变量,如下所示:

DATA: somevar=someval&somevar2=someotherval
Run Code Online (Sandbox Code Playgroud)

我在做这件事时遇到了麻烦.默认情况下,表示urlencode数据,导致:

DATA: somevar%3Dsomeval%26somevar2%3Dsomeotherval
Run Code Online (Sandbox Code Playgroud)

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

DATA: somevar=someval
SOMEVAR2: someotherval
Run Code Online (Sandbox Code Playgroud)

有什么方法可以让表格实际上只是发送上面的数据?

dro*_*ope 9

我不确定你对这篇文章的目标是什么,也不确定阻止POST表单的URL编码确实能解决你的问题.

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

enctype="text/plain"
Run Code Online (Sandbox Code Playgroud)

属性到表单.

下面是一个没有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":"="}