html <form id="userForm1" enctype="application/x-www-form-urlencoded" method="get" action="http://localhost/pc/enc/t1"> 輸入 2+2 2 2 瀏覽器: http://localhost/pc/enc/t1?name=2%2B2&nick=2+2&pass= 後臺 入參 : [Request(GET //localhost:3070/pc/enc/t1?name=2%2B2&nick=2+2&pass=)@298a8a52] request獲取: - -------------name:2+2---------------------------- - -------------nick:2 2----------------------------
html:html
<form id="userForm2" enctype="application/x-www-form-urlencoded" method="post" action="http://localhost/pc/enc/t2">
輸入:
2+2 2 2
瀏覽器:
http://localhost:3070/pc/enc/t2
後臺:
入參 : [Request(POST //localhost:3070/pc/enc/t2)@edf57b2]
- -------------name:2+2----------------------------
- -------------nick:2 2----------------------------前端
總結:在form表單中編碼格式application/x-www-form-urlencoded的時候 get提交 好比參數name=2+2 -》 瀏覽器會變成name=2%2B2 -》 後臺接口獲取參數的時候根據編碼規則會正常顯示2+2
form表單中編碼格式application/x-www-form-urlencoded
簡而言之(application/x-www-form-urlencoded):
2+2 -》2%2B2 -》 2+22 2 -》2+2 -》 2 2以上描述的就是 從瀏覽器用戶填寫提交到瀏覽器跳轉到後臺 整個一個閉環結束了,是一個完整的步驟。而有些狀況下咱們看到這樣的描述 空格變+號 +號變空格 這個又是怎麼回事呢?我遇到的狀況是這樣的:1.先說+號變空格 好比:你在瀏覽器輸入 localhost/pc/name=2+2 你會發現你在後臺取的時候變成了2 2 其實這個狀況和以前是一個的,只是你沒有造成我說的一個完整的閉環,若是你想要後臺獲得的值是2+2,應該怎麼作呢?參考前面的簡而言之會發現。 咱們應該把瀏覽器的url變成 localhost/pc/name=2%2B2 這樣的話後臺取到的就麼有問題了,這個加號應用好比token參數中包含+號,那麼這個+號是有連接先後字符串的意義的,那麼就須要用URLEncoder如下,固然你能夠後臺編碼,也能夠前端編碼,這個編碼應該是base64,能夠先百度看下base64 裏面能夠還有一些坑 好比先後端編碼可能用的工具類實現的細節不一致致使回車符換行符的問題。基礎很重要。