1
resposta

Resultado de chamada REST sendo passado como nulo para o Controller

Estou desenvolvendo uma aplicação na qual preciso fazer algumas chamadas Rest e exibir os resultados no html. Porém, estou com problemas para passar o resultado para o Controller (está chegando como vazio). O JavaScript está assim:

class RestCall {
    GetDPID(btn) {
        var xhr = new XMLHttpRequest();
        var header = {};
        xhr.open("GET", "http://192.168.25.5:8080/stats/switches");
        xhr.addEventListener("load", function () {
            var resposta = xhr.responseText;
            console.log(resposta) //JSON de resposta logando ok
            $.ajax({
                url: '/MonitorSDN/GetDPID',
                type: 'Post',
                contentType: 'application/json',
                headers : header,
                data: resposta,
            }).done(function (response) {
            })
        } 
            )
        xhr.send();
    }
}
var restcall = new RestCall();

Já no Controller o código está assim:

        public void GetDPID([FromBody] List<SwitchSDN> input)
        {
            var teste = input;
        }

Em resumo o console.log está exibindo resultado esperado, mas a variável input do Método GetDPID do controller está chegando vazia. Agradeço qualquer ajuda.

1 resposta

Olá Pedro,

O que acontece é que o nome da variável do seu controller instrui o framework a procurar por uma chave de mesmo nome no seu data. Talvez esse campo não se chame input. Você pode enviar um exemplo do seu xhr.responseText pra eu dar uma olhada?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software