jQuery вырезает знак "+". Как пофиксить?

Print RSS
367

Author
Голубые штаны
0
Такая штука. Заметил, что при передаче POST запроса jQuery вырезает знак "+". При обычном POST все отправляется нормально. В чем может быть причина?

Данные POST я отправляю примерно таким макаром (начало обработки):
var flop = $('#flop').val();
var name = $('#name').val();

$.ajax({
    type: 'POST',
    url: 'адрес обработчика',
    cache: false,
    data: 'flop=' + flop + '&name=' + name,
    dataType: 'html',  
    success: function(repsone)
	{
Обычно юзаю jquery-1.4.2.min, сегодня попробовал версию 1.6.3 - ничего не изменилось.
Как пофиксить? Мне в некоторых местах кода надо передавать знак "+" постом.
A

Пришелец
0
один из вариантов - заменять плюс при подаче запроса на что-нибудь типа "_plus_", а при получении запроса менять обратно.
В

Чатланин
0
http://ru.w3support.net/index.php?db=so&id=1683198

Добавлено через 05:10 сек.
AHgpyxA (28 Сентября 2011 / 16:22)
один из вариантов - заменять плюс при подаче запроса на что-нибудь типа "_plus_", а при получении запроса менять обратно.
Если я правильно понял тут + объединяет между собой имена переменных и их значения,а сам + не передается в запросе.
Author
Голубые штаны
0
2. AHgpyxA, по твоему совету склепал ф-ю обработки знака +
function check_plus(text) 
{
    text = text.replace(new RegExp('\\+','g'),"_plus_");
    return text;
};
Ею можно обрабатывать как выборочно переменные перед передачей, так и полностью data.

Гемор заключается в том, что теперь надо каждую обработанную таким макаром переменную в обработчике заменять обратно
$text = preg_replace('|_plus_|iu','+', $text); 
Спасибо, вопрос решил, но это все-таки костыль. Хотельсь бы решить вопрос более глобально.

3. Vanich, в той ссылке советуют то же самое, что во 2 посте - т.е. маскировку знака "+".
Changed: Дмитрий (28.09.2011 / 17:13)

2000 лет д.н.э.
0
4. dima.london, зачем регулярками? Str_replace
Author
Голубые штаны
0
6. ramzes, что ты имеешь ввиду?

2000 лет д.н.э.
0
$text = str_replace('_plus_', '+', $text);
вот этоsmile
Author
Голубые штаны
0
8. ramzes, а, ну это понятно, я думал, ты про JS

2000 лет д.н.э.
0
9. dima.london, кроме всего прочего, у меня отправляет плюсы на ура =) тоже jquery но 1.3.2.js

2000 лет д.н.э.
0
12. ZiGR, так и так, его надо реплейситьsmile
интересно то что, у меня нет такой проблемы, она точно должна быть? может дело не в самом js? может ему что то мешает?
.. хотя я немного иначе данные отправляю..
Stickers / Tags / Rules / Top topics / Top Posts / Search