Я пытаюсь отправить объект JSON с Ajax в контроллер Spring Spring MVC, но я встретил некоторые проблемы.Spring MVC Ajax POST
Давайте представим вам мой код:
Контроллер
@RequestMapping(value = "/register/checkUsername.html", method = RequestMethod.POST, produces=MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody JsonResponse checkUsername(@RequestBody JsonUsername username) {
String usernameString = username.getUsername();
JsonResponse response = new JsonResponse();
response.setMessage(usernameString + "Available");
return response;
}
Ajax Функция
function displayUsernamError(data) {
var json = "<h4>Eroare</h4><pre>"
+ JSON.stringify(data, null, 4) + "</pre>";
$('#usernameError').html(json);
}
function checkUsername(){
var username = document.getElementById("username");
var search = {
"username" : username.value
}
$.ajax({
type : "POST",
contentType : 'application/json; charset=utf-8',
dataType : 'json',
url : "http://localhost:8080/skill-assessment/register/checkUsername.html",
data : JSON.stringify(search),
success : function(result) {
console.log("SUCCESS: ", data);
displayUsernamError(result);
},
error: function(e){
console.log("ERROR: ", e);
displayUsernamError(e);
},
done : function(e) {
console.log("DONE");
}
});
}
И, наконец, HTML форма:
<form:form modelAttribute="user" method="POST" enctype="utf8">
<tr>
<td><label>Username</label></td>
<td><form:input path="name" id="username" /></td>
<td>
<p id="usernameError">
</p>
</td>
</tr>
<button type="button" onClick="checkUsername()">Register</button>
</form:form>
Итак, я звоню проверка ame, когда я нажимаю на кнопку Register, только для теста.
Вызывается функция ajax и отправляется JSON на контроллер. Я использовал отладку, и контроллер, похоже, получает объект JSON.
Проблема с Ответом контроллера, потому что в DIV ошибок с моей страницы HTML, я получаю эту ошибку:
HTTP Status 406 Ресурса, определяемый этот запрос, может только генерировать ответы с характеристиками неприемлемо в соответствии с заголовком запроса \ "accept \".
В чем проблема? Кто может дать мне идею?
использование потребляет = MediaType.APPLICATION_JSON_VALUE –