Кращий спосіб:
encodeURIComponent уникає всіх символів, крім наступного:alphabetic, decimal digits, - _ . ! ~ * ' ( )
Щоб уникнути несподіваних запитів на сервер, вам слід зателефонувати encodeURIComponent на будь-які введені користувачем параметри, які будуть передані як частина URI. Наприклад, користувач може ввести "Чебрець і час = знову" для змінного коментаря. Якщо не використовувати encodeURIComponent для цієї змінної, ви дасте коментар = Чебрець% 20 & time = ще раз. Зауважте, що амперсанд та знак рівності означають нову пару ключів та значень. Отже, замість того, щоб мати ключ коментаря POST, рівний "Чебрець та час = знову", у вас є два ключі POST, один дорівнює "Чебрецю", а інший (час), рівний знову.
Для application / x-www-form-urlencoded (POST), за http://www.w3.org/TR/html401/interac...m-content-type , пробіли слід замінити на "+", так можна побажати заміни кодуURIComponent додатковою заміною "% 20" на "+".
Якщо ви хочете бути більш суворими у дотриманні RFC 3986 (який резервує!, ', (,) І *), хоча ці символи не мають формалізованого використання URI, що обмежує використання, можна безпечно використовувати наступне:
function fixedEncodeURIComponent (str) {
return encodeURIComponent(str).replace(/[!'()]/g, escape).replace(/\*/g, "%2A");
}
$.param
.