{"id":4355,"date":"2016-08-18T08:50:00","date_gmt":"2016-08-18T11:50:00","guid":{"rendered":"https:\/\/www.mxcursos.com\/blog\/?p=4355"},"modified":"2021-12-30T09:15:04","modified_gmt":"2021-12-30T12:15:04","slug":"consultar-cep-com-ajax-utilizando-jquery","status":"publish","type":"post","link":"https:\/\/www.mxcursos.com\/blog\/consultar-cep-com-ajax-utilizando-jquery\/","title":{"rendered":"Consultar CEP com Ajax utilizando jQuery"},"content":{"rendered":"<p>Ao desenvolvemos qualquer tipo de aplica\u00e7\u00e3o onde usu\u00e1rio precise preencher o endere\u00e7o, devemos nos atentar com a facilidade automatiza\u00e7\u00e3o para n\u00e3o tornar este processo desagrad\u00e1vel.\u00a0Uma forma de amenizar esse processo pra usu\u00e1rio \u00e9 retornar essas\u00a0informa\u00e7\u00f5es de forma autom\u00e1tica a partir da inclus\u00e3o do CEP.<\/p>\n<p>Ao digitar o CEP, os demais campos do endere\u00e7o s\u00e3o preenchidos automaticamente. Mas como isso seria poss\u00edvel?<\/p>\n<p>Os correios possuem uma API (Application Programming Interface). Trata-se de um conjunto de rotinas e padr\u00f5es de programa\u00e7\u00e3o para acesso a um aplicativo de software ou plataforma baseado na Web.<\/p>\n<p>Entretanto, \u00e9 preciso primeiro saber onde iremos realizar essa\u00a0consulta.<\/p>\n<p>Neste tutorial iremos utilizar esta API dos correios:<a href=\"https:\/\/viacep.com.br\/\" target=\"_blank\" rel=\"noopener\">https:\/\/viacep.com.br\/<\/a><\/p>\n<p>Nossa estrutura de arquivos e pastas para esse tutorial ficar\u00e1 assim:<\/p>\n<ul class=\"list-tutorial\">\n<li>js\/\n<ul>\n<li>cep.js<\/li>\n<\/ul>\n<\/li>\n<li>index.html<\/li>\n<\/ul>\n<p>Iremos utilizar tamb\u00e9m para estiliza\u00e7\u00e3o do\u00a0formul\u00e1rio o Bootstrap do Twitter, e para consulta utilizaremos o <em>jQuery<\/em>.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-medium wp-image-4475\" src=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/08\/jquery-1-600x300.jpg\" alt=\"jquery\" width=\"600\" height=\"300\" srcset=\"https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/08\/jquery-1-600x300.jpg 600w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/08\/jquery-1-768x384.jpg 768w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/08\/jquery-1.jpg 1000w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/08\/jquery-1-740x370.jpg 740w, https:\/\/www.mxcursos.com\/blog\/wp-content\/uploads\/2016\/08\/jquery-1-24x12.jpg 24w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/>Vamos criar nossa estrutura html, no arquivo <em>index.html<\/em>:<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;!doctype html&gt;\r\n&lt;html lang=\"pt-br\"&gt;\r\n&lt;head&gt;\r\n\t&lt;meta charset=\"UTF-8\"&gt;\r\n\t&lt;title&gt;Consultar CEP via AJAX com jQuery&lt;\/title&gt;\r\n\t&lt;link rel=\"stylesheet\" href=\"https:\/\/maxcdn.bootstrapcdn.com\/bootstrap\/3.3.7\/css\/bootstrap.min.css\"\/&gt;\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n\t&lt;div class=\"container\"&gt;\r\n\t\t&lt;div class=\"page-header\"&gt;\r\n\t\t\t&lt;h1 class=\"text-center\"&gt;Consultar CEP via Ajax com jQuery&lt;\/h1&gt;\r\n\t\t&lt;\/div&gt;\r\n\t\t&lt;form class=\"form-horizontal\"&gt;\r\n\t\t\t  &lt;div class=\"form-group\"&gt;\r\n\t\t\t\t&lt;label for=\"cep\"&gt;CEP&lt;\/label&gt;\r\n\t\t\t\t&lt;input type=\"text\" class=\"form-control\" name=\"cep\" placeholder=\"CEP\" \/&gt;\r\n\t\t\t  &lt;\/div&gt;\r\n\t\t\t  &lt;div class=\"form-group\"&gt;\r\n\t\t\t\t&lt;label for=\"rua\"&gt;Rua&lt;\/label&gt;\r\n\t\t\t\t&lt;input type=\"text\" class=\"form-control\" name=\"rua\" placeholder=\"Rua\" \/&gt;\r\n\t\t\t  &lt;\/div&gt;\r\n\t\t\t  \r\n\t\t\t  &lt;div class=\"form-group\"&gt;\r\n\t\t\t\t&lt;label for=\"rua\"&gt;Bairro&lt;\/label&gt;\r\n\t\t\t\t&lt;input type=\"text\" class=\"form-control\" name=\"bairro\" placeholder=\"Bairro\" \/&gt;\r\n\t\t\t  &lt;\/div&gt;\r\n\t\t\t  \r\n\t\t\t   &lt;div class=\"form-group\"&gt;\r\n\t\t\t\t&lt;label for=\"cidade\"&gt;Cidade&lt;\/label&gt;\r\n\t\t\t\t&lt;input type=\"text\" class=\"form-control\" name=\"cidade\" placeholder=\"Cidade\" \/&gt;\r\n\t\t\t  &lt;\/div&gt;\r\n\t\t\t  \r\n\t\t\t  &lt;div class=\"form-group\"&gt;\r\n\t\t\t\t&lt;label for=\"uf\"&gt;Estado (UF)&lt;\/label&gt;\r\n\t\t\t\t&lt;input type=\"text\" class=\"form-control\" name=\"uf\" placeholder=\"Estado\" \/&gt;\r\n\t\t\t  &lt;\/div&gt;\t\t  \r\n\t\t&lt;\/form&gt;\r\n\t&lt;\/div&gt;\t\r\n\t&lt;script type=\"text\/javascript\" src=\"\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/2.2.4\/jquery.min.js\"&gt;&lt;\/script&gt;\r\n\t&lt;script type=\"text\/javascript\" src=\"js\/cep.js\"&gt;&lt;\/script&gt;\t\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/pre>\n<p>Explicando o c\u00f3digo acima:<\/p>\n<ul class=\"list-tutorial\">\n<li>Na linha 6, chamamos o arquivo\u00a0bootstrap.min.css, de uma CDN, para realizar estiliza\u00e7\u00e3o do formul\u00e1rio;<\/li>\n<li>Na linha\u00a013 a 37, criamos um formul\u00e1rio comum, apenas com a estrutura para utilizar o estilo do Bootstrap;<\/li>\n<li>Na linha 39 a 40, chamamos o jQuery do CDN e tamb\u00e9m o script cep.js, que\u00a0ir\u00e1 conter a consulta \u00e0 API.<\/li>\n<\/ul>\n<p>Agora iremos ao arquivo <em>cep.js<\/em><\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">$(document).ready(function(){\r\n\t$(&quot;input&#x5B;name=cep]&quot;).blur(function(){\r\n\t\tvar cep = $(this).val().replace(\/&#x5B;^0-9]\/, '');\r\n\t\tif(cep){\r\n\t\t\tvar url = 'https:\/\/viacep.com.br\/ws\/'+cep+'\/json\/';\r\n\t\t\t$.ajax({\r\n                    url: url,\r\n                    dataType: 'jsonp',\r\n                    crossDomain: true,\r\n                    contentType: &quot;application\/json&quot;,\r\n\t\t\t\t\tsuccess : function(json){\r\n\t\t\t\t\t\tif(json.logradouro){\r\n\t\t\t\t\t\t\t$(&quot;input&#x5B;name=rua]&quot;).val(json.logradouro);\r\n\t\t\t\t\t\t\t$(&quot;input&#x5B;name=bairro]&quot;).val(json.bairro);\r\n\t\t\t\t\t\t\t$(&quot;input&#x5B;name=cidade]&quot;).val(json.localidade);\r\n\t\t\t\t\t\t\t$(&quot;input&#x5B;name=uf]&quot;).val(json.estado);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\t\t\t\t\t\r\n\t});\t\r\n});<\/pre>\n<p>Explicando o c\u00f3digo acima:<\/p>\n<ul class=\"list-tutorial\">\n<li>Na linha 1, inicia o jQuery para\u00a0iniciar depois de carregar o DOM;<\/li>\n<li>Na linha 2, seleciona input cujo o\u00a0name CEP atribui o evento blur e ser\u00e1 executa uma fun\u00e7\u00e3o, caso clique fora do campo selecionado;<\/li>\n<li>Na linha 3, criamos uma vari\u00e1vel cep<strong>, <\/strong>que recebe o valor do CEP<strong>\u00a0<\/strong>e remove tudo diferente de 0-9, usando replace;<\/li>\n<li>Na linha 4, verificamos se tem algum valor na vari\u00e1vel cep para dar continua\u00e7\u00e3o ao\u00a0script;<\/li>\n<li>Na\u00a0Linha 5,\u00a0criamos a vari\u00e1vel url que define onde ser\u00e1 feito a requisi\u00e7\u00e3o, passando o CEP para API;<\/li>\n<li>Na linha 6 chamamos o evento $.ajax;<\/li>\n<li>Na linha 7, definimos a url da requisi\u00e7\u00e3o;<\/li>\n<li>Na linha 8, definimos o tipo de dados que voc\u00ea\u00a0espera do retorno, no nosso caso o JSONP;<\/li>\n<li>Na linha 9, permitimos o redirecionamento ao realizar a requisi\u00e7\u00e3o;<\/li>\n<li>Na linha 10,\u00a0informamos o tipo de conte\u00fado que ser\u00e1 enviado na requisi\u00e7\u00e3o;<\/li>\n<li>Na linha 11 a 18, resgatamos o retorno se for com sucesso e atribu\u00edmos a cada item do formul\u00e1rio o valor retornado.<\/li>\n<\/ul>\n<p>Para ver o funcionamento do script:<\/p>\n<p><a href=\"https:\/\/www.mxcursos.com\/blog\/exemplos\/cep\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.mxcursos.com\/blog\/exemplos\/cep<\/a><\/p>\n<p>Para baixar o script criado no tutorial:<\/p>\n<p><a href=\"https:\/\/github.com\/davidchc\/tutorial-consultar-cep-ajax\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/github.com\/davidchc\/tutorial-consultar-cep-ajax<\/a><\/p>\n<p>Gostou do artigo? Compartilhe!<\/p>\n<p>Se tiver quaisquer d\u00favidas, \u00e9 s\u00f3 deixar um coment\u00e1rio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ao desenvolvemos qualquer tipo de aplica\u00e7\u00e3o onde usu\u00e1rio precise preencher o endere\u00e7o, devemos nos atentar com a facilidade automatiza\u00e7\u00e3o para n\u00e3o tornar este processo desagrad\u00e1vel.\u00a0Uma forma de amenizar esse processo pra usu\u00e1rio \u00e9 retornar essas\u00a0informa\u00e7\u00f5es de forma autom\u00e1tica a partir da inclus\u00e3o do CEP. Ao digitar o CEP, os demais campos do endere\u00e7o s\u00e3o preenchidos [&hellip;]<\/p>\n","protected":false},"author":67,"featured_media":4478,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[678],"tags":[],"class_list":["post-4355","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimento"],"_links":{"self":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts\/4355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/comments?post=4355"}],"version-history":[{"count":0,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/posts\/4355\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/media\/4478"}],"wp:attachment":[{"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/media?parent=4355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/categories?post=4355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mxcursos.com\/blog\/wp-json\/wp\/v2\/tags?post=4355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}