Добрый день! Есть такой кусок кода:
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() - результат тот же
Хотя когда пробую обработать массив в консоли браузера теми же методами - всё выводится нормально