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
– Otavio Souza Rocha
@Otaviosouzarocha I think nude Success is better.
– Vinicius De Jesus
@Viniciusdejesus to be honest I don’t know the difference kkkk so I’ll trust you
– Otavio Souza Rocha
But what would that look like? Could someone just give me a little sample?
– Rafael Passos
Edit the question and explain better the problem there pfv
– Vinicius De Jesus
I edited it... I don’t know if I understand it better
– Rafael Passos