Ошибка весной 3 покоя webservice 406 (не допустимо)
Мой код:
<script type="text/javascript" src="JavaScript/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#login").click(function() {
var name1 = $("#eid").val();
var pass1 = $("#p").val();
var datacontent = {
"empName": name1,
"empPassword": pass1
};
alert(JSON.stringify(datacontent));
$.ajax({
type: "POST",
accept: "application/json",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "/rest_test1/empLogin.htm",
data: JSON.stringify(datacontent), // Note it is important
success: function(data) {
alert(data.empName + " " + data.empPassword);
}
// error: function(data, status, er) {
// alert("Data: " + data + "Status: " + status + "Error:" + er);
// }
});
});
});
</script>
Код контроллера:
@Controller
public class EmployeeRestController {
@RequestMapping(value = "/empLogin.htm", method = RequestMethod.POST)
public @ResponseBody EmployeeVo doRegister(@RequestBody EmployeeVo employeeVo){
System.out.println(employeeVo.getEmpName() + " " + employeeVo.getEmpPassword());
return employeeVo;
}
}
Когда я запускаю этот код значения отображаются в консоли, но получить ошибку:
406 (неприемлемо)
Так что ниже код не работает:
success: function(data) {
alert(data.empName + " " + data.empPassword);
}
я использовал jackson-annotations-2.3.0.jar
, jackson-core-2.3.4.jar
, jackson-databind-2.3.4.jar
Jar файлы.
1 ответ
Код состояния HTTP 406 означает, что сервер не может ответить в формате, заданном запросом accept
заголовок. Другими словами, ваш веб-сервис не настроен на создание application/json
ответ.
Попробуйте удалить accept: "application/json"
из вашего AJAX-запроса или добавьте тип контента к вашему ответу, например так:
@RequestMapping(value="/empLogin.htm", headers="Content-Type=application/json", method=RequestMethod.POST)