POST Ajax Вызов не отправлен JSON Контент и GET неподдерживаемый тип носителя - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть Java API с Spring MVC. Я проверил конечную точку с Почтальоном, и она работала нормально (необработанное тело типа JSON). Теперь я тестировал ту же конечную точку с веб-страницы с помощью вызова jQuery ajax, и похоже, что отправляемый формат - это текст.

Это мой ajax Запрос

var jsonData = {
    "username" : $("#username").val(),
    "password" : $("#password").val()
};
console.log(jsonData);
$.ajax({
    type: 'POST',
    url: "/app/sing-in",
    data: jsonData,
    contentType: "application/json",
    dataType: "json",
    success: function(data, textStatus, jqXHR){
        console.log("textStatus:" + textStatus);
        console.log("jqXHR:" + jqXHR.status);
    },
    error: function(jqXHR, textStatus, errorThrown){
        console.log("ERROR-textStatus:" + textStatus);
        console.log("ERROR-jqXHR:" + jqXHR.status);
    },
});

Это ошибка, которую я получаю:

timestamp: "2020-04-07T18:10:30.242+0000"
status: 400
error: "Bad Request"
message: "JSON parse error: Unrecognized token 'username': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false'); nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'username': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')↵ at [Source: (PushbackInputStream); line: 1, column: 10]"
path: "/app/sing-in":

Странно выглядит, что я отправляю не объект JSON в своем запросе, а простой текст.

enter image description here

Можно ли использовать объект javascript вместо объекта JSON? Могу ли я сделать общее преобразование c здесь?

1 Ответ

1 голос
/ 07 апреля 2020

Попробуйте использовать JSON.stringify() для данных перед отправкой Ajax.

JSON.stringify(jsonData);

См. Это подробнее: { ссылка }

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...