Чтобы избежать множества вызовов ajax, я пытаюсь отправить три переменные через один ответ Ajax, но у меня возникают проблемы с обработкой данных, когда они получены на клиенте.Ниже я объясню.Если не рекомендуется отправлять несколько переменных с одним ответом, скажите, пожалуйста, почему.
Сервер отправляет ответ, включающий три переменные.один - просто массив, два и три - объекты mysql RowDataPacket.Это выглядит так:
let oneJSON = JSON.stringify(one);
let twoJSON = JSON.stringify(two);
let threeJSON = JSON.stringify(three);
response.write(oneJSON);
response.write(twoJSON);
response.write(threeJSON);
response.end();
Код клиента:
$.ajax({
type: "POST",
url: "http://localhost:3000/getthis",
data: {
"date": date,
},
success: function(data) {
alert(data);
/* not working:
let allvariables = JSON.parse(data);
alert(allvariables);
*/
}
});
На клиенте я получаю один файл JSON, который выглядит следующим образом:
["cat1","cat2","cat3",null][{"strength":"10","temp":"10","category":"cat1"}][{"difficulty":"medium","category":"cat1"}]
Выше код создается через alert(data);
.Как вы можете видеть, каждая переменная имеет «[]» вокруг них.
Итак, данные получены, но я не знаю, как вернуть переменные обратно?Я попытался начать с анализа:
let allvariables = JSON.parse(data); alert(allvariables);
, но, похоже, это не работает, так как оповещение не создается.
Любая идея, как я могу получить переменные из полученного JSONфайл?