#ajax #spring-mvc
#ajax #spring-mvc
Вопрос:
Это мой вызов ajax.
$.ajax({
type: "get",
url: "xyz",
success: function(res){
alert("hello");// not coming while returning int type but coming while returning a String value.
}
});
В моем контроллере,
@RequestMapping(value="/xyz")
@ResponseBody
public Integer xyz(){
int i = 10;
return i;
}
Что здесь не так. Вместо типа int, если я возвращаю строковый тип, я могу получить данные в ajax success.
Спасибо
Комментарии:
1. когда вы отправляете тип int, каким будет значение ‘res’ при его консоли? если вы получите какой-то ответ, проверьте, каков тип ответа по свойству typeof .
2. @Prajwal Если я отправляю тип int, то функция успеха вообще не выполняется. Тогда как его утешить.
3. Ответ AJAX должен быть в следующем формате: XML, HTML или JSON. Целое число недопустимая форма. Я предпочитаю, чтобы вы использовали JSON, видя требование. Надеюсь, это поможет
4. @Prajwal Тогда, как он принимает строковые данные, строковые данные поступают в форме XML, HTML или JSON.
5. Строковые данные обрабатываются как обычный текст, который является одним из используемых типов контента
Ответ №1:
Во-первых, вы должны указать полный HTTP-URL. Скажем, что-то вроде этого:
http://localhost:8080/your_webapp_name/xyz
и не только: xyz
Во-вторых, если вы хотите отправить HTTP-запрос GET на сервер, вы должны указать его в разделе метод, а не в разделе тип. Вот так:
method:"GET"
Теперь метод success в вашем Jquery Ajax всегда будет ожидать принятия текста в качестве параметра, поэтому в вашем случае res
параметр следует рассматривать как текст.
Поэтому вместо этого вы можете просто:
@RequestMapping(value="/xyz")
@ResponseBody
public String xyz(){
return "10";
}
И в вашем методе успеха ajax преобразуйте строку в числовой тип.
В JavaScript у вас нет целых чисел, у вас есть строка, число, логическое значение, массивы, объекты.