Я пытаюсь использовать localStorage для передачи переменных между страницами. В java я заполняю список:
output.add(0, accountGroup.getAccountId());
output.add(1, accountGroup.getLevel());
output.add(2, accountGroup.getGroupName());
output.add(3, "0");
output.add(4, accountGroup.getGroupSection());
output.add(5, accountGroup.getGroupNAS());
output.add(6, nextView);
String json = new Gson().toJson(output);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
А затем я пытаюсь сохранить каждую переменную в ajax:
.done(function(responseJson){
dataType: "json";
localStorage.setItem('lsAccountID', $('#temp').val(responseJson[0]));
alert(localStorage.getItem('lsAccountID'));
localStorage.setItem('lsAccountLevel', $('#temp').val(responseJson[1]));
localStorage.setItem('lsGroupName', $('#temp').val(responseJson[2]));
localStorage.setItem('lsNoGroupsStarted', $('#temp').val(responseJson[3]));
localStorage.setItem('lsGroupSection', $('#temp').val(responseJson[4]));
localStorage.setItem('lsGroupNAS', $('#temp').val(responseJson[5]));
localStorage.setItem('lsNextView', $('#temp').val(responseJson[6]));
window.location.assign("SelectPerson.html");
})
Это не сохраняет правильное значение (в данном случае "7"), это отображается как "alert (localStorage.getItem ('lsAccountID'));" возвращает «[объект Object]» вместо «7». Я знаю, что «7» сохраняется в output.add (0, accountGroup.getAccountId ()); добавив "System.out.println".
Зачем это нужно?
Если вы хотите увидеть больше деталей, чем [object Object], например фактическое содержимое этого объекта, то console.info будет лучшим способом сделать это.
Привет, Xufox, журнал выглядит следующим образом, что, как я считаю, не соответствует этой проблеме: Неперехваченная ошибка: синтаксическая ошибка, нераспознанное выражение: null </ul> в Function.fa.error (jquery.min.js: 2) в fa.tokenize (jquery.min.js: 2) в fa.select (jquery.min.js: 2) в Function.fa [как найти] (jquery.min.js: 2) в n.fn.init.find (jquery.min.js: 2) в новом n.fn.init (jquery.min.js: 2) в n (jquery.min.js: 2) в Object. <анонимный> (selectPerson-ajax.js: 29 ) в i (jquery.min.js: 2) в Object.fireWith [as resolveWith] (jquery.min.js: 2)
Интересно, что люди голосуют против, не комментируя. Думаю, они тоже не знают ответа.
Люди голосуют против, потому что не было предоставлено конкретной постановки проблемы. «Это не работает» совершенно бесполезно.




Ответ - использовать parseJSON:
.done(function(responseJson){
dataType: "json";
var result = $.parseJSON(responseJson);
localStorage.setItem('lsAccountID', result[0]);
localStorage.setItem('lsAccountLevel', result[1]);
localStorage.setItem('lsGroupName', result[2]);
localStorage.setItem('lsNoGroupsStarted', result[3]);
localStorage.setItem('lsGroupSection', result[4]);
localStorage.setItem('lsGroupNAS', result[5]);
localStorage.setItem('lsNextView', result[6]);
if (result[6] == "1"){
window.location.assign("SelectPerson.html");
}else{
$('#ajaxGetUserServletResponse').text(result[6]);
$("#accountName").focus();
}
window.location.assign("SelectPerson.html");
})
Не нужно отлаживать
alert. Используйте консоль браузера (инструменты разработчика) (нажмитеF12) и используйтеconsole.info.