Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Кодировка на ajax (https://javascript.ru/forum/dom-window/72896-kodirovka-na-ajax.html)

Янковиц 05.03.2018 13:43

Кодировка на ajax
 
Есть скрипт отправляющий данные формы:
jQuery(document).ready(function(){
	jQuery('body').on('click', '#save-profile', function() {
		var str = jQuery('#profileform').serialize();
		alert(str);
		jQuery.ajax({
			url: url,
			type: 'POST',
			cache: false,
			data: {
				action : 'update',
				str: str,
			},
			success: function(data){
				jQuery('.response').html(data);
			}
		});
		return false;
	});
});

Соответственно в форму вводятся данные на кириллице. Alert str выводит: email=email%040gmail.com&name=%D0AF0FA%FA0
И в таком духе. Как это вылечить?

ksa 05.03.2018 13:46

Цитата:

Сообщение от Янковиц
Как это вылечить?

Это подойдет?
http://javascript.ru/forum/misc/3455...rovat-url.html

var str='http://usefulscript.ru/search.php?text=%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%81%D0%BF%D0%BE%D0%B9%D0%BB%D0%B5%D1%80%D0%B0&searchid=1876853&l10n=ru&web=0#1118';
alert(decodeURIComponent(str));

Янковиц 05.03.2018 13:51

Кириллицу нормально декодирует decodeURI, но значек @ остается крякозябрами

laimas 05.03.2018 13:55

Янковиц,
а вас что это должно беспокоить? Сервер автоматически декодирует данные согласно переданным, которые по умолчанию application/x-www-form-urlencoded. И Ajax работает в UTF.

Янковиц 05.03.2018 13:58

Дело в том, что на стороне php у меня не проходит валидация

laimas 05.03.2018 14:08

Значит косяки на сервере, клиент тут причем?

Янковиц 05.03.2018 14:15

Да, все уже разобрался. Спасибо всем!


Часовой пояс GMT +3, время: 07:00.