Как преобразовать массив JS в строку для отправки через GET запрос?

Добрый день! Есть такой кусок кода:
var k_dict = []
	$('.option').click(function(){ 
		c = $(this).attr('data-checked');
		if (c == 0){
			v = $(this).find('input').attr('value');
			if (in_array(v, k_dict) == false){
				k_dict.push(v);
			}      
			$(this).find('input').attr('checked', 1);
			$(this).attr('data-checked', "1");
		}else{
			v = $(this).find('input').attr('value');
			k_dict.remove(v);
			$(this).find('input').attr('checked', !1);
			$(this).attr('data-checked', "0");
		}
		str = k_dict.toString();
		var c_path = window.location.pathname + 'filter?k_dict=' + str;
		$.ajax({
			type: "GET",
			url: c_path,
			cache: false,
			success: function(data){
				$('#product-list').empty().append(data).fadeIn(fast);
			}
		});
		console.log(k_dict);
	})

Он собирает определённые значения в массив k_dict, далее нужно отправить этот массив Гет параметром на сервер, но почему то при подстановке в url получается такое:
/pueri/filter/?k_dict=%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D1%8B%D0%B9&_=1483881244441

Вместо ожидаемого:
/pueri/filter?k_dict=['Value1', 'Value2']
Сервер выдаёт такую ошибку: TypeError: expected string or bytes-like object
Пробовал и toString() и .join() - результат тот же
Хотя когда пробую обработать массив в консоли браузера теми же методами - всё выводится нормально
  • Вопрос задан
  • 1252 просмотра
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
var c_path = window.location.pathname + 'filter';
    $.ajax({
      type: "GET",
      url: c_path,
      data: {k_dict: k_dict},
      cache: false,
      success: function(data){
        $('#product-list').empty().append(data).fadeIn(fast);
      }
    });
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@entermix
www.urldecoder.org

/pueri/filter/?k_dict=%D0%BA%D1%80%D0%B0%D1%81%D0%BD%D1%8B%D0%B9&_=1483881244441 
--->
/pueri/filter/?k_dict=красный&_=1483881244441
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы