#java #json #ajax #jsp #servlets
#java #json #ajax #jsp #сервлеты
Вопрос:
Я отправляю json из сервлета следующим образом
User profileUser = userService.get(id);
request.setAttribute("profileUser", profileUser);
JSONObject json = new JSONObject();
try {
json.put("profileUser", profileUser);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setContentType("application/json");
response.getWriter().write(json.toString());
И в javascript в вызове ajax
$.ajax({
cache : false,
type : "GET",
url : "UserServlet?id=" userId,
success : function(result) {
alert(result.profileUser);
}
});
Результатом предупреждения является выдача мне Entity.user, но если я хочу вызвать result.profileUser.uuid или свойство этого пользователя, возвращает мне undefined . Кто-нибудь может мне помочь?
Комментарии:
1. Каков фактический HTTP-ответ?
2. @SLaks 302 временно перемещен
Ответ №1:
Если вы отправляете json своему Ajax-клиенту, вам нужно указать, что вы собираетесь получать тип json. Вот так:
$.ajax({
cache : false,
type : "GET",
dataType : "json",
url : "UserServlet?id=" userId,
success : function(result) {
alert(result.profileUser);
}
});
Это приведет к тому, что ваш метод успеха будет оценивать параметр результата как объект json.
Ответ №2:
Измените свой Ajax на следующий:
$.ajax({
cache : false,
type : "GET",
url : "UserServlet?id=" userId,
success : function(profileUser) {
alert(profileUser.uuid);
}
});