, если вы определенно хотите использовать запрос GET
, используйте JSON.stringify
:
var url = '../reports/student.php?data='+ encodeURIComponent(JSON.stringify(data));
Но лучшим способом будет запрос POST
.
Вы также можете использовать jQuery.param()
:
var data = {
name: 'yourname',
age: 1,
}
var params = jQuery.param(data) // 'name=yourname&age=1'
var url = '../reports/student.php?'+ params;
Создать сериализованное представление массива, простого объекта или объекта jQuery, подходящего для использования в строке запроса URL-адреса или Ajax запрос. Если объект jQuery передан, он должен содержать элементы ввода с свойствами name / value.
blockquote>В документе также указано, что
Если объект прошел находится в массиве, он должен быть массивом объектов в формате, возвращаемом
blockquote>.serializeArray()
Итак, в вашем случае:
var url = '../reports/student.php?' + jQuery.param(serializeArray(data));
Чтобы несериализовать, вы должны использовать функцию jQuery BBQ deparam в соответствии с ответом cce в этом вопросе SO: Обратная функция $ .param () в JavaScript / jQuery .