Two Ajax requests

Asked

Viewed 77 times

1

I need to make two Ajax requests. one for my own database. the other is via API. the first is to query in my database, if the CNPJ, informed is already registered, the second is for an external URL. The second is only to execute if the first query vim NULL, if the first query returns any result, I want to show a message from CNPJ ALREADY REGISTERED.

In my controller I made the following method:

public ActionResult VerificarCnpjJaCadastrado(string cnpj)
        {
            var cliente = _clienteAppService.ContarCpfOuCnpjCadastrado(cnpj);
            if (cliente != null)
            {
                return Json(cliente, JsonRequestBehavior.AllowGet).Mensagem("CPF|CNPJ Já cadastrado na base de dados", "Já Cadastrado");
            }

            return Json(cliente, JsonRequestBehavior.AllowGet);
        }

to be honest, I don’t know how to make a request come for this method, and if it returns NULL, make the next request.

This one is the Ajax that makes the request via API;

<script>
    $(document).ready(function () {

        // Adicionamos o evento onclick ao botão com o ID "pesquisar"
        $('#pesquisar').on('click', function (e) {

            // Apesar do botão estar com o type="button", é prudente chamar essa função para evitar algum comportamento indesejado
            e.preventDefault();

            // Aqui recuperamos o cnpj preenchido do campo e usamos uma expressão regular para limpar da string tudo aquilo que for diferente de números
            var cnpj = $('#Cliente_Cnpj').val().replace(/[^0-9]/g, '');

            // Fazemos uma verificação simples do cnpj confirmando se ele tem 14 caracteres
            if (cnpj.length == 14) {


                // Aqui rodamos o ajax para a url da API concatenando o número do CNPJ na url
                $.ajax({
                    url: 'https://www.receitaws.com.br/v1/cnpj/' + cnpj,
                    method: 'GET',
                    dataType:
                        'jsonp', // Em requisições AJAX para outro domínio é necessário usar o formato "jsonp" que é o único aceito pelos navegadores por questão de segurança
                    beforeSend: function() {
                        $('#status').html('<div class="alert alert-info">Buscando CNPJ</div>');
                    },

                    complete: function (xhr) {
                        $('#status').html('<div class="alert alert-success">CNPJ Encontrado</div>');
                        setTimeout(function() { 
                            $('#status').html('');
                        }, 1000);


                        // Aqui recuperamos o json retornado
                        response = xhr.responseJSON;

                        // Na documentação desta API tem esse campo status que retorna "OK" caso a consulta tenha sido efetuada com sucesso
                        if (response.status == 'OK') {

                            // Agora preenchemos os campos com os valores retornados
                            $('#Cliente_RazaoSocial').val(response.nome);
                            $('#Cliente_NomeFantasia').val(response.fantasia);
                            $('#Endereco_Rua').val(response.logradouro);
                            $('#Endereco_Numero').val(response.numero);
                            $('#Endereco_Bairro').val(response.bairro);
                            $('#Endereco_Complemento').val(response.complemento);
                            $('#Endereco_Cep').val(response.cep);

                            //$('#Cliente_Cnae').val(response.atividade_principal);
                            // Aqui exibimos uma mensagem caso tenha ocorrido algum erro
                        } else {
                            alert(response.message); // Neste caso estamos imprimindo a mensagem que a própria API retorna
                        }
                    }
                });

                // Tratativa para caso o CNPJ não tenha 14 caracteres
            } else {
                alert('CNPJ inválido');
            }
        });
    });
</script>

Like, do I have to create within that two Ajax function? like

$(document).ready(function () {
$.ajax({R1}) //Ajax 1
$.ajax({R2}) //Ajax 2
}

or something like:

   $(document).ready(function () {
    $.ajax({
            if(ajax1 == null)
               {
               $.ajax({R2})
               }else{("CNPJ JA CADASTRADO")}
           }) //Ajax 1
     //Ajax 2
    }
  • Just make the other call on Else that prints the return You can execute an AJAX request in the complete or error of another request

  • @Otaviosouzarocha I think nude Success is better.

  • @Viniciusdejesus to be honest I don’t know the difference kkkk so I’ll trust you

  • But what would that look like? Could someone just give me a little sample?

  • Edit the question and explain better the problem there pfv

  • I edited it... I don’t know if I understand it better

Show 1 more comment
No answers

Browser other questions tagged

You are not signed in. Login or sign up in order to post.