USPS lookup via zipcode

Toggle class name on click in jQuery

by Faisal Khan Janjua

HTML

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<p id="result"></p>

JavaScript

$(document).ready(function() {
  const userId = "127TECHI4229"; // Replace with your USPS Web Tools ID

  const zipCodes = [
10163,13838,20188,23827,24769,32120,32471,32701,32703,32705,32707,32708,32709,32712,32714,32717,32722,32727,32728,32730,32732,32733,32736,32741,32746,32748,32750,32751,32755,32756,32757,32762,32765,32766,32769,32771,32772,32773,32776,32779,32789,32790,32792,32794,32798,32801,32803,32804,32805,32807,32808,32810,32811,32813,32814,32816,32817,32820,32825,32826,32828,32833,32834,32838,32847,32851,32856,32859,32863,32877,33488,33824,33848,34707,34712,34722,34733,34764,34765,34768,34770,34774,34776,35751,37208,37442,37746,60185,64064,
32806,32809,32812,32821,32822,32824,32827,32829,32832,32837,32839,33836,33858,33896,33897,34739,34741,34742,34743,34744,34745,34746,34747,34769,34771,34772,34773,
23736,24711,31786,32476,32519,32659,32702,32704,32710,32711,32718,32726,32731,32735,32737,32743,32747,32753,32758,32761,32768,32777,32778,32784,32787,32788,32797,32802,32818,32819,32830,32835,32836,32939,33597,33879,33887,33986,34400,34705,34711,34714,34715,34717,34719,34726,34729,34731,34734,34735,34736,34737,34740,34748,34749,34753,34755,34756,34757,34760,34761,34762,34777,34778,34783,34786,34787,34788,34789,34797,34848,36787,37226,37411,37459,38218,77210
  ];

  const proxy = "https://corsproxy.io/?"; // CORS bypass for browser testing
  const cities = [];
  let index = 0;
  $("#result").html('');

  function lookupNextZip() {
    if (index >= zipCodes.length) {
      $("#result").append("<br/> Done! Unique cities found:\n" + cities.join(", "));
      return;
    }

    const zip = zipCodes[index];
    const xml = `
      <CityStateLookupRequest USERID="${userId}">
        <ZipCode ID="0"><Zip5>${zip}</Zip5></ZipCode>
      </CityStateLookupRequest>`;

    const url = `https://secure.shippingapis.com/ShippingAPI.dll?API=CityStateLookup&XML=${encodeURIComponent(xml)}`;

    $.get(proxy + url, function(data) {
      const $xml...