#javascript #jquery #ajax
#язык JavaScript #jquery #аякс
Вопрос:
Я пытаюсь отправить массивы в качестве переменных post в вызове Ajax с помощью FormData. По какой-то причине они преобразуются в строки, когда я смотрю в консоль. Я не могу обновить функции, принимающие данные, чтобы принимать строки, они должны принимать массивы. Я читал об использовании функции сериализации, но тогда у меня также остается strings…so Я не знаю, как это сделать. Вот код, который у меня есть до сих пор:
function submitSearch(method) { if (method==='ajax_getPrograms') { fields = ['pkProgramID','fldName','fldOrganization','fldProgramStartDate','fldProgramEndDate']; } if (method==='ajax_getPlots') { fields = ['id','lat','long','plotSampleYear']; } if (method==='ajax_getTrees') { fields = ['id','species','DBH','treeStatus','treeSampleYear']; } var posturl = baseURL "data/" method; var formData = new FormData(); formData.append('fields',fields); $.ajax({ url: posturl, cache: false, data: formData, method: 'POST', mimeType: "multipart/form-data", contentType: false, processData: false, type: 'POST', error: function (xhr, status, error) { console.log(xhr); console.log(status); console.log(error); }, success: function (data) { console.log(data); } }); }
Когда я отправляю это, я получаю сообщение об ошибке, что моя функция получает строку, а не массив, и это то, что я вижу на вкладке сеть консоли:
Любая помощь приветствуется, спасибо!
Комментарии:
1. Почему вы используете
mimeType: "multipart/form-data"
? Вы пробовали это без этого мимеТипа (полностью опуская его)?2. Я получаю тот же результат без мимеТипа. Я использовал это, потому что видел это в примере с использованием FormData.