Ajax запрос с типом POST не работает, только с GET - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь отправить и ajax отправить запрос на свой контроллер springboot mvc, но безуспешно. Я просмотрел ряд похожих тем, пробовал данные решения, но безуспешно. Если я изменю тип запроса на GET, он активирует конечную точку контроллера.

Функция конечной точки даже не запускается в контроллере. В консоли браузера отображается только следующая ошибка: jquery -3.4.1. js: 9837 POST http://localhost: 8080 / rede-credenciada 500

Я сделал тот же запрос с почтальоном, и он дает следующую ошибку:

{
    "timestamp": "2020-07-09T17:46:20.920+0000",
    "status": 999,
    "error": "None",
    "message": "No message available"
} 

Примечание: это происходит только с запросом POST, если я перехожу на GET, он работает нормально. Запрос «прослушивается» контроллером.

Вот мой ajax запрос:

const json = {
    idGrupoProcedimento: 0,
    idTipoEspecialidade: $("#especialidade").val(),
    uf: $("#estado").val(),
    codCidade: $("#cidade").val()
}

const jsonString = JSON.stringify(json);

$.ajax({
    url: "/rede-credenciada",
    type: 'POST',
    contentType: "application/json",
    dataType: "application/json",
    data: jsonString,
    success: function(data){
        console.log(data);
    },
    error: function(e) {
        console.log(e.message);
    }
});

Вот моя конечная точка:

@RequestMapping(value = "/rede-credenciada", method = RequestMethod.POST, consumes = "application/json")
@ResponseBody
public RedeCredenciadaResponse buscaRedeCredenciadaPorFiltro(@RequestBody RedeCredenciadaRequest request) {
        
    ... some logic
    
    RedeCredenciadaResponse redeCredenciada = new RedeCredenciadaResponse();
    
    redeCredenciada.setPessoasFisicas(pessoas);
    redeCredenciada.setEmpresas(empresas);
    
    return redeCredenciada;
}

А вот и мой класс-оболочка:

public class RedeCredenciadaRequest {

private int idGrupoProcedimento;

private int idTipoEspecialidade;

private String uf;

private String codCidade;

public int getIdGrupoProcedimento() {
    return idGrupoProcedimento;
}

public void setIdGrupoProcedimento(int idGrupoProcedimento) {
    this.idGrupoProcedimento = idGrupoProcedimento;
}

public int  getIdTipoEspecialidade() {
    return idTipoEspecialidade;
}

public void setIdTipoEspecialidade(int idTipoEspecialidade) {
    this.idTipoEspecialidade = idTipoEspecialidade;
}

public String getUf() {
    return uf;
}

public void setUf(String uf) {
    this.uf = uf;
}

public String getCodCidade() {
    return codCidade;
}

public void setCodCidade(String cidade) {
    this.codCidade = cidade;
}

введите описание изображения здесь Ошибка:

1 Ответ

0 голосов
/ 07 августа 2020

В вашем запросе ajax вы используете dataType:'application/json', согласно jQuery Ajax -связанные методы Описание

// The type of data we expect back
dataType : "json",

Значение dataType должно быть json, или xml, или html и т.д. c.

...