(推薦)用JavaScript的頂層函數對url進行編碼

來源:互聯網
上載者:User

如果表單的action為list.do?act=go&state=5
則提交時通過request.getParameter方法,可以分別取得act和state的值。
如果你的本意是想傳'go&state=5'一個字串,act='go&state=5',其中包含了;/?:@&=+$,# 這些特殊字元,他們在 URI 中具有特殊含義。
那麼為了在服務端拿到act的準確值'go&state=5',你必須對& =等特殊字元 進行轉義

JavaScript的頂層函數(全域函數) :
encodeURIComponent() 函數可把字串作為URI的“一部分”進行編碼,例如對'go&state=5'編碼,會對 ;/?:@&=+$,# 進行編碼
encodeURI() 函數可把字串作為“一整個”URI 進行編碼。例如/My first/list.jsp?a=12&b=45&c=89 , &是參數分隔字元,所以 不會對;/?:@&=+$,# 進行編碼

decodeURIComponent() 函數可對 encodeURIComponent() 函數編碼的 URI 進行解碼。
decodeURI() 函數可對 encodeURI() 函數編碼過的 URI 進行解碼。

例子:

Js代碼
encodeURIComponent(",/?:@&=+$#")                      返回結果:%2C%2F%3F%3A%40%26%3D%2B%24%23  
encodeURIComponent("http://www.w3school.com.cn/p 1/") 返回結果:http%3A%2F%2Fwww.w3school.com.cn%2Fp%201%2F      
 
encodeURI(",/?:@&=+$#")                   返回結果:,/?:@&=+$#  
encodeURI("http://www.w3school.com.cn/My first/")      返回結果:http://www.w3school.com.cn/My%20first/ 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.