Ошибка 415 с запросом ajax (Spring) - PullRequest
0 голосов
/ 10 июня 2018

Мой запрос AJAX отправляется, но никогда не достигает моего контроллера, я получаю 415 Ошибка ()

Запрос Ajax

function likeAjax(mId) {
    var data = {}
    data["id"] = mId;

    $.ajax({
        type : "POST",
        headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json'
        },
        url : "/likeMessage",
        data : JSON.stringify(data),
        dataType : 'json',
        timeout : 100000,
        beforeSend :(xhr)=>{
            xhr.setRequestHeader(csrfheader,csrftoken); //for Spring Security
        },
        success : (data) =>{
            console.log("SUCCESS : ", data);
            alert(data);
        },
        error : (e)=> {
            console.log("ERROR: ", e);
        },
        done : function(e) {
            alert("DONE : " + e.toString());
            console.log("DONE");
        }
    });

Контроллер

@ResponseBody()
@RequestMapping(value = "/likeMessage", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public AjaxResponseBody likeWithAjax(@RequestBody() AjaxRequestBody request) {

    AjaxResponseBody result = new AjaxResponseBody();

    //some logic

    return result
}

Классы AjaxRequestBody и AjaxResponseBody

private class AjaxRequestBody{
    int id;
}

private class AjaxResponseBody{
    String message;
}

Я уверен, что упускаю что-то очевидное, но не могу понятьвот этот.

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 10 июня 2018

Удалить аннотацию ResponseBody () из метода контроллера.Убедитесь, что вы добавили аннотацию RestCOntroller в класс контроллеров.

Добавить производит = "application / json" в RequestMapping

...