DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 使用Post提交時須將空格轉換成加號的解釋
使用Post提交時須將空格轉換成加號的解釋
編輯:關於JavaScript     
jQuery的serialize模塊中有個r20正則
復制代碼 代碼如下:
var r20 = /%20/g,

jQuery.param方法中會將所有的"%20"轉成"+",即提交數據前,數據中如果包含空格,那經過encodeURIComponent後,空格會轉成"%20"
復制代碼 代碼如下:
encodeURIComponent(' ') === '%20'; // true

最後需要將"%20"轉換成"="再Post提交。這樣後台程序接受到的才是真正的空格。

關於 encodeURIComponent,見MDC描述

encodeURIComponent escapes all characters except the following: alphabetic, decimal digits, - _ . ! ~ * ' ( )

To avoid unexpected requests to the server, you should call encodeURIComponent on any user-entered parameters that will be passed as part of a URI. For example, a user could type "Thyme &time=again" for a variable comment. Not using encodeURIComponent on this variable will give comment=Thyme%20&time=again. Note that the ampersand and the equal sign mark a new key and value pair. So instead of having a POST comment key equal to "Thyme &time=again", you have two POST keys, one equal to "Thyme " and another (time) equal to again.

For application/x-www-form-urlencoded (POST), per http://www.w3.org/TR/html401/interac...m-content-type, spaces are to be replaced by '+', so one may wish to follow a encodeURIComponent replacement with an additional replacement of "%20" with "+".

相關
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent
http://www.w3.org/TR/html401/interact/forms.html#form-content-type
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved