Может быть, я должен просто держать рот на замке и двигаться вперед, но что-то подсказывает мне, что все работает не так хорошо, как я думаю, и мне нужно это исправить.
По сути, я делаю простой вызов AJAX, чтобы сообщить серверу, что выбрал пользователь: уже существующий проект или новый проект. AJAX выглядит так:
var dataString = 'existingProject='+ $("#existingProject").val() + '&newProjName=' + $("#newProjName").val();
//AJAX call to post selections to server
$.post('/myproj/manageProjects.html',dataString);
Подпись Spring MVC, которая обрабатывает этот почтовый вызов, выглядит следующим образом:
@RequestMapping(value="/manageProjects",produces="application/json",method=RequestMethod.POST)
public StatusResponse manageProjects(
@RequestParam(value="existingProject",required=false) String existingProj,
@RequestParam(value="newProjName",required=false) String newProj,
HttpSession session){
Меня поражает то, что я получаю вызов в manageProjects с правильными переменными и ожидаемыми значениями. Сервер обрабатывает запрос и возвращает созданное мною pojo StatusResponse, включающее логическое значение (успех или сбой) и список сообщений обратной связи с сервером. Я создаю один с простым статусом «true» для успеха и возвращаю его обратно.
Затем клиент выбрасывает 404 manageProjects.html, не найденный, и продолжает свой веселый путь, как будто ничего не пошло не так.
Так .... он нашел это или нет? Если pojo типа StatusResponse является неподходящим ответом от контроллера Spring MVC, что является правильным ответом? Почему сообщение успешно попадет в контроллер, но тогда клиент получит 404?!
Спасибо за понимание ....
Сноска: извиняюсь, если это похоже на предыдущий вопрос сегодняшнего дня. Я пришел к основной проблеме с неправильной точки зрения и создал больше путаницы, чем необходимо в этой публикации ...