Как я могу получить доступ к объекту модели spring в ajax success?

Я пытаюсь получить доступ к определенной конечной точке через Ajax get. В случае успеха я хочу обработать некоторую логику условно, используя «statusCode», который был установлен в модели.
ниже мой код
Код контроллера:

 @RequestMapping("/person")
    public String loginError(Model model) {
        String code = "active"
        model.addAttribute("statusCode", code)
        return "person";
    }

Код JS:

 $.ajax(url, {
         success: function(data, textStatus, xhr) {
                 //I want to access the statusCode here 
             },
         error: function() {
            console.log("Error");
         }
      });

В данных abject я действительно возвращаю человека html. Но я хочу знать, как мне получить доступ к statusCode внутри блока успеха?
Спасибо.

если ваша конечная точка возвращает HTML, вам придется проанализировать HTML, чтобы найти в нем какую-либо информацию. Если вы хотите получить фактические значения данных в JavaScript, вам необходимо создать конечную точку, которая вместо этого возвращает JSON.

ADyson 10.09.2018 11:06
0
1
241
1

Ответы 1

Поскольку вы используете вызов AJAX и вам необходимо обработать ответ кода состояния, вам нужно указать в контроллере yout, что ответ является типом AJAX, а не ModelAndView. Используйте эту аннотацию ResponseBody

@RequestMapping("/person")
@ResponseBody
public String loginError(Model model) {
    String code = "active"
    //Here add your logic and returs the String or Object to handle in the JS code
    return code;
}

Лично я бы использовал более полный ответ Bean, например:

class JsonResponse implements Serializable {
    @Getter @Setter
    private int code;

    @Getter @Setter
    private String message;

    @Getter @Setter
    private int action;

    //Any other attributes useful for your logic 

}

Другие вопросы по теме