Предположим что вам нужно с определенного инпута отправлять аякс запрос на сервер, к примеру что бы проверить занят логин или нет при регистрации нового пользователя. Для этого вы пишите примерно следующую конструкцию:
1 2 3 4 5 6 7 8 9 10 |
function startAjax() { $.ajax({ url: '/site/ajax-search', data: 'login='+input.val(), beforeSend: function() { }, success: function() { } }); } |
Разберем строчку data: ‘login=’+input.val(), тут мы делаем строку из строки login= и input.val() и в результате получаем примерно следующее — login=user_login
А теперь представим что будет если пользователь введет к символ &, можете попробовать сделать это у себя. В итоге будет передаваться 2 переменные, наша login и все то что после символа
Есть 2 способа как можно «обернуть» наши данные
- Используйте функцию encodeURIComponent(), в итоге будет что то вроде ‘login=’+encodeURIComponent(input.val())
- А вот второй способ более красивый и правильный, все что нам нужно это создать объект и поместить туда наши данные — {login: input.val()}
В итоге ваш код будем примерно таким:
1 2 3 4 5 6 7 8 9 10 |
function startAjax() { $.ajax({ url: '/site/ajax-search', data: {login: input.val()}, beforeSend: function() { }, success: function() { } }); } |