Метод запроса 'POST' не поддерживается с Ajax / Spring MVC handleHttpRequestMethodNotSupported - PullRequest
0 голосов
/ 23 января 2019

У меня есть кнопка, которая выполняет POST-запрос к моему серверу, но она не работает.

Мое приложение отключило csfr, и у меня есть другие кнопки, которые используют $ .post (), и он работает нормально. В обсуждаемой функции он никогда не попадает на серверную часть.

Это кнопка:

<button onclick="honor('gold', '${loggedUser.username}')" style="margin-right: 2%;"
                class="btn btn-info pull-right">
                <span style="padding: 2em 4em;">NEXT</span>
            </button>

Это функция чести:

function honor(type, username) {
var message = $("#message").val();
var name = $("#honor-box").attr("name");
var id = name.substring(1);
$.ajax({
    type : "POST",
    url : "http://(emitted)/honor?type=" + type + "&id="
            + id + "&name=" + username,
    data : message,
    dataType : "json"
});
}

Заголовок функции на стороне сервера:

@RequestMapping(value = "/honor", method = RequestMethod.POST)
public void giveHonor(Principal principal, Model model, @RequestParam(name = "type") String type,
        @RequestParam(name = "id") String id, @RequestParam(name = "name") String name,
        @RequestParam("json") String message)

Это работает, когда я удаляю data: message из honor () и удаляю @RequestParam ("json") Строковое сообщение от giveHonor (), так что проблема определенно есть.

Мне нужна функция honor () для отправки информации в giveHonor () на стороне сервера.

1 Ответ

0 голосов
/ 23 января 2019

Вы получили сообщение как param. передать его как парам из ajax.

$.ajax({
    type : "POST",
    url : "http://(emitted)/honor?type=" + type + "&id="
            + id + "&name=" + username + "&json="+ message,
});
...