We provide Digital marketing services, SEO, SMO Services for $120

The key goal is to promotebrands through different ones forms of digital media. Digital marketing is the use of the internet, mobile devices, social media, search engines, display ads and other channels consumers. As a subset of traditional marketing, digital marketing goes beyond the internet include Short Message Service (SMS), Simple Notification Service (SNS), search engine optimization (SEO), electronic or interactive billboards and other online advertisements (such as banner advertisements) to promote products and services. Why me? 1. White hat work 2. On-time Delivery 3. Quick Response time 4. 100% Satisfaction Guaranteed On page SEO include: · Keyword &competitors Research · Content and imagesOptimization · H1 & H2 tagssetting · Speed Optimization · Meta tags and YoastOptimization · Search console &Analytics setting · Robots.txt and sitemapsubmission · All General S.E.Osettings Off-page SEO include: · Keywords targetedbacklinks · Local citations · Social media profileLinks · 20 search enginessubmissions · Google my businesslistings · Bad backlinks removal · Monthly rank progressreport So, what are you waiting for? Place an Order today, and let us do SEO full onpage and off page optimization to boost your Google ranking! I have only two thingsto Offer: Quality service & Quality results, and that all adds up to one Goal ➧ Excellence.! I will Rank your Website on the First page of Google with our Powerfulon-page and Off-page SEO optimization strategies.

by: AshsihPNJ
Created: —
Category: Other
Viewed: 259


SEO Services, Digital marketing for $125

Hey, Contact me for SEO, SMO, Google Ads managementand quality content writing services for your business website. I can do quality keywords research, on page SEO,off page optimization, quality link building, Google Analytics and Webmaster, WordPress SEO plugin setup for your website ranking in Google SERP. If you are looking for Google Ads campaignmanagement, PPC setup for your website with high ROI and social media optimization. Get in touch today. My SEO Skills are listed below – • Website Analysis Free SEO audits • Keyword Analysis • Content Optimization • Meta Tags keywords, Title, Description Optimization • Canonical Issue Correction • Header H1, H2, H3. Tags Optimization • Google Analytics Setup • Google Webmaster tool verification • Sitemap Creation and Submission • Robots.txt file creation and Submission • W3C Validation Check • Image Optimization ALT Tag and Complete ONPage and Off Page analysis to boost your website ranking and much more……

by: AshsihPNJ
Created: —
Category: Onsite SEO & Research
Viewed: 281


Web designing services required for cloud hosting website

Hi,
I need experienced web designer to redesign my cloud hosting web site. Person having experience of developing web hosting, cloud, VPS , dedicated hosting sites will be preferred.

I have few themeforest template in mind, which can be used to develop site or it can be done from scratch.

Do not want wordpress site. Development should be in html/css and core PHP

Please PM me portfolio to start conversation.

Hostbazzar : Reliable Services | Isolate sites with webspaces | Unmetered Resources |

HostBazzar which is accessed as Hostbazzar provides the great low cost hosting solutions in hosting field…Businesses depend on their host to 
 provide stable and reliable services. They also depend on a host’s support to be knowledgeable, read / listen to their questions or issues and  
 address them quickly. We focus on those requirements to ensure you always receive the service and support a business depends on.
 Create your own plan by mixing and matching different server resources including storage space, monthly traffic, CPU, RAM, and etc.
  
  Add additional webspaces to isolate your sites within the same hosting account.
  Each hosting account receives one staging webspace that provides an area for you to test site updates without using the production site’s server resources.

Standard Features:

~ Easy Billing Cycles
~ Unlimited Sub Domains
~ HTML Editor
~ Dream weaver compatible
~ Site.pro Site builder
~ Under 30 minute ticket response times
~ Control Panel: Plesk
~ Unlimited Forwarders 
~ Catch-All Email Addresses 
~ ionCube PHP Loader 
~ Nightly Security Updates 
~ Horde Webmail 
~ No Hidden Costs
~ Free Migration Service

   Order Now : Hostbazzar.com
        
   More Info on Hosting Service

   Thank you.

) Hostbazzar : Reliable Services | Isolate Sites With Webspaces | Unmetered Resources |

HostBazzar which is accessed as Hostbazzar provides the great low cost hosting solutions in hosting field…Businesses depend on their host to
provide stable and reliable services. They also depend on a host’s support to be knowledgeable, read / listen to their questions or issues and
address them quickly. We focus on those requirements to ensure you always receive the service and support a business depends on.
Create your own plan by mixing and matching different server resources…

) Hostbazzar : Reliable Services | Isolate Sites With Webspaces | Unmetered Resources |

Selling 3 PBN High Authority Backlink DA DA Dofollow Permanent Services for $6

Backlink is one part of SEO (Search Engine Optimization), PBN or Private Blog Network is a backlink that is very good to use today, it is very useful to increase the rank (rank) of your keywords on Google and at the same time increase the traffic of visitors to your website. Feature: – The backlink I installed is permanent. – 100% DoFollow backlinks. – Everything is done manually. – Unique content 300 – 500 Indonesian / English words. – DA/PA 50 – 60 – All domains are indexed by Google. – Articles may be from you. – Backlink Strategy According to Google Webmaster Guidelines To start Gig: – Submit 1 URL of your web / blog – Submit 3 keywords your web / blog Note: We don’t accept Adults, Gambling, Porn & Illegal sites.

by: twoonemuda
Created: —
Category: PBNs
Viewed: 293


Problem accessing services through the private IP on multihomed server

I’ve got such an strange behaviour in a Ubuntu 18.04.3 LTS with latest updates:

Introduction:

It’s a multihomed server with a public IP for public services and a private IP on a second adapter for comunications like SSH. I’ve set up an IPSec tunnel (pfSense) that is working fine, so that I can SSH to all my servers on that private LAN.

The facts:

Periodically, after several days working fine it happens that:

  • 1) I can’t connect to any service from my VPN IP to the private IP address

  • 2) If I restart the VPN client or the VPN service it doesn’t solve

  • 3) If I restart the SSH service it doesn’t solve. It also happens with nginx, for example. Service restarts don’t solve it.

  • 4) I neither can connect to new services on new ports from the previously told IPs source/destination

  • 5) When the problem is happening other servers in that private LAN are not affected and you can connect from those servers to the SSH service of this affected server without problems. For example: my monitoring software is not showing any alert because it can connect to the services on its private IP without any problem.

  • 6) If I capture network traffic (tcpdump) I see that the first “SYN” packet is really reaching the server, but he server is not replying with the SYN/ACK packet as expected. So, the communication is never stablished.

  • 7) I can’t find any error message anywhere

  • 8) the static network route for VPN Network isn’t lost, ‘netstat -rn’ shows the same routes

  • 9) the server is idle

  • 10) It’s not using any local firewall like iptables

  • 11) To solve it I just have to put the network interface down and up (ifconfig eth1 down; ifconfig eth1 up), or reboot the server.

My assumptions

  • it can’t be a IPSec problem because of facts #5 and #6
  • it can’t be related to the software of the service (SSH) because of fact #3
  • it can’t be related to network routes because of facts #6 and #8
  • it’s not a performance probem, because of fact #9

It looks like a TCP/IP network stack problem but it would happen to more people and it should be solved in patches.

Can any body help me, please? Thanks in advance!

I was given a XML web part that uses SharePoint Services. I need to convert it into an ajax/JSON webpart

I was given an old webpart using SP services and XML. I was requested to use Ajax. This is the first time I do this kind of conversion and I am not sure if I am doing it correctly.

<?xml version="1.0" encoding="utf-8"?> <WebPart xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/WebPart/v2">   <Title>LeftNav MultiTopic Accordion Webpart</Title>   <FrameType>None</FrameType>   <Description>TLeftNav MultiTopic Accordion Webpart</Description>   <IsIncluded>true</IsIncluded>   <ZoneID>wpz</ZoneID>   <PartOrder>0</PartOrder>   <FrameState>Normal</FrameState>   <Height />   <Width />   <AllowRemove>true</AllowRemove>   <AllowZoneChange>true</AllowZoneChange>   <AllowMinimize>true</AllowMinimize>   <AllowConnect>true</AllowConnect>   <AllowEdit>true</AllowEdit>   <AllowHide>true</AllowHide>   <IsVisible>true</IsVisible>   <DetailLink />   <HelpLink />   <HelpMode>Modeless</HelpMode>   <Dir>Default</Dir>   <PartImageSmall />   <MissingAssembly>Cannot import this Web Part.</MissingAssembly>   <PartImageLarge>/_layouts/images/mssfwp.gif</PartImageLarge>   <IsIncludedFilter />   <Assembly>Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c</Assembly>   <TypeName>Microsoft.SharePoint.WebPartPages.SimpleFormWebPart</TypeName>   <Content xmlns="http://schemas.microsoft.com/WebPart/v2/SimpleForm"><![CDATA[<html dir="ltr" xmlns="http://www.w3.org/1999/xhtml" xmlns:mso="urn:schemas-microsoft-com:office:office" xmlns:msdt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"> <head> <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/dataTables.bootstrap4.min.css"/>     <script type="text/javascript" src="/Style%20Library/V6/js/vendor/mdb/jquery-3.2.1.min.js"></script> <style type="text/css">         #topicNav select{             display: none!important;         }          @media (max-width: 767px) {             #topicNav{                 text-align:center;             }             #topicNav ul {                 display: none;             }             #topicNav select {                 display: inline-block!important;             }         }          #accordionEx .accordion .card{     border-bottom: 1px #81D4FA solid !important; } #accordionColumn span{     ;     float:right;     margin-bottom:2.5rem;  } #accordionColumn span:after{     content: "\f067";     font-family: FontAwesome;     ;     right: 0;     top: 0;     left:100%;     color:black;     display: block;     width: 32px;     height: 32px;     line-height: 32px;     background:#4FC3F7;     border-radius:50%;     vertical-align: middle;     text-align: center;     -webkit-transition: all .35s;     -o-transition: all .35s;     transition: all .35s; }  #accordionColumn span.down:after {     -ms-transform: rotate(135deg);     -moz-transform: rotate(135deg);     -webkit-transform: rotate(135deg);     transform: rotate(135deg);  }     </style> </head> <body> <form id="form1" runat="server">     <section aria-label="Main Page Content" id="td">         <div class="container py-3">         <div class="row justify-content-center justify-content-md-end my-2">                 <div class="col-md-4 col-10 pr-1">                     <div class="z-depth-1 bg-white pr-3" style="border-radius:4px;">                         <input class="form-control pl-3" id="tdSearch" style="border-radius:4px;" type="text" placeholder="Search" aria-label="Search" data-search/>                     </div>                 </div>                 <div class="col-md-1 col-2 d-flex px-0 justify-content-md-end justify-content-start">                     <button class="btn btn-sm px-4 d-flex justify-content-center" style="background-color:#039BE5; margin-top:4px; margin-bottom:16px" type="button" data-search-button><i class="fal fa-search" style="font-size:24px"></i></button>                 </div>             </div>             <div class="row justify-content-between">                 <div class="col-md-3 col-12 pr-md-4">                     <h4 class="pb-md-3 font-weight-bold text-center text-md-left">CATEGORY</h4>                     <div id="topicNav" class="pb-md-3 py-md-0">                         <ul class="px-0" id="topicOptions" style="list-style-type:none; border-left:solid medium #eaeaea;">                             <!--Options injected here-->                         </ul>                     </div>                 </div>                 <div class="col-md-9 col-12 pt-3 pt-md-0 px-3 px-md-0">                     <h2 id="tdTopicTitle" class="pb-3 font-weight-bold text-center text-md-left text-uppercase">Airlines</h2>                 <!-- Grid row -->                     <div class="row d-flex justify-content-center">                          <!-- Grid column -->                         <div class="col-md-12 pb-5 mr-1" id="accordionColumn">                          </div>                         <!-- Grid column -->                      </div>                     <!-- Grid row -->                 </div>             </div>             </div>     </section>   </form> <script type="text/javascript" src="/Style%20Library/V6/js/vendor/mdb/jquery-3.2.1.min.js"></script> <script type="text/javascript"> //Webpart Scripts  var accID = 'AIRLINES'; var searchVal = ''; $  (document).ready(function () {      tdResults = $  ().SPServices.SPGetListItemsJson({         webURL: "/airport/business",         listName: "TenantDirectory",         viewName: "",         CAMLQuery: "",         CAMLViewFields: "",         CAMLRowLimit: "",         CAMLQueryOptions: "",         changeToken: "",         contains: "",         mapping: {             ows_Title: {                 mappedName: "Title",                 objectType: "Text"             },             ows_Address: {                 mappedName: "Address",                 objectType: "Text"             },             ows_Numbers: {                 mappedName: "Numbers",                 objectType: "Text"             },             ows_Categories: {                 mappedName: "Categories",                 objectType: "Text"             },             ows_link: {                 mappedName: "Link",                 objectType: "Text"             },             ows_ID: {                 mappedName: "ID",                 objectType: "Text"             },          },         mappingOverrides: null,         debug: false     });      $  .when(tdResults).done(function () {         var thistdResults = this.data;         function onlyUnique(value, index, self) {             return self.indexOf(value) === index;         }         var tdItems = $  .each(thistdResults, function (ind, tdItems) {             return tdItems;         });          var allTopics = [];         for (i = 0; i < tdItems.length; i++) {             var filterTopics = tdItems[i];             allTopics.push(filterTopics.Categories);         };         allTopics.sort();          var topicList = allTopics.filter(onlyUnique);         for (i = 0; i < topicList.length; i++) {             var topicName = topicList[i]             $  ('#topicOptions').append('<li class="py-1 pl-3"><a href="#" class="text-dark">' + topicName + '</a></li>');         }         var effectIn = function () {             $  ('#tdTopicTitle').html(accID).fadeTo(500, 1);             return $  ("#accordionColumn").fadeTo(500, 1);         };          var effectOut = function () {             $  ('#tdTopicTitle').fadeTo(500, 0);             return $  ("#accordionColumn").fadeTo(500, 0);         };         //includes Polyfill         if (!String.prototype.includes) {           Object.defineProperty(String.prototype, 'includes', {             value: function(search, start) {               if (typeof start !== 'number') {                 start = 0               }                if (start + search.length > this.length) {                 return false               } else {                 return this.indexOf(search, start) !== -1               }             }           })         }         function createAccordion() {             var tdItems = $  .each(thistdResults, function (ind, tdItems) {                 return tdItems;             });             if (accID != 'Search Results'){                 var filterTopic = tdItems.filter(function (e) {                     return e.Categories.toUpperCase() == accID;                 });             }else{                 var filterTopic = tdItems.filter(function (e) {                     var questions = e.Title.toLowerCase();                     return questions.includes(searchVal);                 });             }             var buildAcc = function () {                 var accID2 = accID.replace(/\s/g, '');                 var accBuild = '<div class="accordion" id="' + accID2 + '" role="tablist" aria-multiselectable="true""></div>'                 $  ("#accordionColumn").append(accBuild);             };             buildAcc();             var buildCards = function () {                 if(filterTopic.length !== 0){                     for (i = 0; i < filterTopic.length; i++) {                         var accID2 = accID.replace(/\s/g, '');                         var tdItems = filterTopic[i];                         var headerID = "heading" + tdItems.ID;                         var cardBodyID = "collapse" + tdItems.ID;                         var cardTitle = tdItems.Title;                         if (tdItems.Address){                             var cardAdd = '<p><strong>Address:</strong> ' + tdItems.Address + '</p>'                         }else{                             var cardAdd = ''                         }                         if(tdItems.Numbers){                             var cardNumbers = '<p><strong>Numbers:</strong><br/> ' + tdItems.Numbers + '</p>'                                            }else{                             var cardNumbers = ''                         }                         if (tdItems.Link){                             var cardWebsite = tdItems.Link.slice(0, -1);                             var website = '<p><strong>Website:</strong> <a href="'+ cardWebsite +'" target="_blank">'+ cardWebsite +'</a></p>'                          }else{                             var website = ''                         }                            var cardBuild = '<div class="card">' +                             '<div class="card-header pb-1 pl-0" role="tab" id="' + headerID + '">' +                             '<a class="collapsed" data-toggle="collapse" data-parent="#' + accID2 + '" href="#' + cardBodyID + '" aria-expanded="false" aria-controls="' + cardBodyID + '">' +                             '<h5 class="mb-0 font-thin">' + cardTitle + '<span class="rotate"></span></h5>' +                             '</a>' +                             '</div>' +                             '<div id="' + cardBodyID + '" class="collapse" role="tabpanel" aria-labelledby="' + headerID + '" data-parent="#' + accID + '">' +                              '<div class="card-body py-1 pl-0">' + cardAdd + cardNumbers + website + '</div>'+                             '</div>' +                             '</div>'                         $  (".accordion").append(cardBuild);                     };                     }else{                         var cardBuild = '<h4>There are no results matching your search.</div>'                         $  (".accordion").append(cardBuild);                     }                         //Accordion Icon Animation                     $  ('.accordion > div > div > a').on('click', function () {                         $  (this).find(".rotate").addClass("down");                     });                     $  ('.accordion > div > div > a').on('click', function () {                         $  (this).find(".rotate").addClass("down");                     });                 };             buildCards();          };         createAccordion();         $  ("#topicOptions > li:first-child > a").parent().css({             borderLeft: "solid medium #039BE5",             marginLeft: "-3px"         });          $  ("#topicOptions > li > a").on("click", function () {             event.returnValue = false;             accID = this.innerHTML.toUpperCase();             $  ("[data-search]")[0].value = '';             $  ("#topicOptions > li").css({                 borderLeft: "none",                 marginLeft: "0px"             });             $  (this).parent().css({                 borderLeft: "solid medium #039BE5",                 marginLeft: "-3px"             });             $  .when(effectOut()).done(function () {                 $  (".accordion").remove();                 createAccordion();                 effectIn();             });         });          function topicNav() {             // Create the dropdown base             $  ("<select style=\"border:none; height:50px;\" class=\"browser-default custom-select w-100 z-depth-1\" />").appendTo("#topicNav");             // Create default option "Go to..."             $  ("<option />", {                 "selected": "",                 "value": "Choose a Topic",                 "text": "Choose a Topic"             }).appendTo("#topicNav select");              // Populate dropdown with menu items             $  ("#topicNav > ul > li > a").each(function () {                 var topicsSelect = $  (this);                 $  ("<option />", {                     "value": topicsSelect.text(),                     "text": topicsSelect.text()                 }).appendTo("#topicNav select");             });              // To make dropdown actually work             // To make more unobtrusive: https://css-tricks.com/4064-unobtrusive-page-changer/             $  ("#topicNav select").change(function () {                 accID = $  (this).find("option:selected").val()                 $  .when(effectOut()).done(function () {                     $  (".accordion").remove();                     createAccordion();                     effectIn();                 });             });           };         topicNav();          //Search Function         $  ('[data-search]').keypress(function(event) {             if (event.which == 13){             event.preventDefault();             event.returnValue = false;             accID = 'Search Results';              searchVal = $  (this).val().toLowerCase();                 $  .when(effectOut()).done(function () {                     $  ("#topicOptions > li").css({                         borderLeft: "none",                         marginLeft: "0px"                     });                      $  (".accordion").remove();                     createAccordion();                     effectIn();                 });             }         });         $  ('[data-search-button]').on('click', function(event) {             event.preventDefault();             event.returnValue = false;             accID = 'Search Results';              $  ("#topicOptions > li").css({                 borderLeft: "none",                 marginLeft: "0px"             });              searchVal = $  ('#tdSearch').val().toLowerCase();                 $  .when(effectOut()).done(function () {                     $  ("#topicOptions > li").css({                         borderLeft: "none",                         marginLeft: "0px"                     });                      $  (".accordion").remove();                     createAccordion();                     effectIn();                 });         });     }); });     webpartMove = $  ("#td")     webpartMove.detach();     webpartMove.appendTo("#fullPageContent");     $  ("#fullPageContent > div > div.row.pt-3.mb-r").removeClass('mb-r pt-3');  </script> </body> </html>]]></Content> </WebPart> 

This is what I have done so far.

var accID = 'AIRLINES'; var searchVal = '';  var tdResults = $  .ajax({     url: apiUrl1,     method: 'GET',     headers: {         'Accept': 'application/json; odata=verbose'     },     success: function (data) {          var items = data.d.results;          for (var i = 0; i < items.length; i++) {              var title = items[i].Title;             var address = items[i].Address;             var number = items[i].Numbers;             var categories = items[i].Categories;             var id = items[i].ID;             var link = items[i].Link;          } // this ends for loop          /*mappingOverrides: null,         debug: false*/      }, // this ends success function      error: function(data) {         console.log('Error: ' + data);     } }); //end of ajax      $  .when(tdResults).done(function () {         var thistdResults = this.data;         function onlyUnique(value, index, self) {             return self.indexOf(value) === index;         }         var tdItems = $  .each(thistdResults, function (ind, tdItems) {             return tdItems;         });          var allTopics = [];         for (i = 0; i < tdItems.length; i++) {             var filterTopics = tdItems[i];             allTopics.push(filterTopics.Categories);         };         allTopics.sort();          var topicList = allTopics.filter(onlyUnique);         for (i = 0; i < topicList.length; i++) {             var topicName = topicList[i]             $  ('#topicOptions').append('<li class="py-1 pl-3"><a href="#" class="text-dark">' + topicName + '</a></li>');         }         var effectIn = function () {             $  ('#tdTopicTitle').html(accID).fadeTo(500, 1);             return $  ("#accordionColumn").fadeTo(500, 1);         };          var effectOut = function () {             $  ('#tdTopicTitle').fadeTo(500, 0);             return $  ("#accordionColumn").fadeTo(500, 0);         };         //includes Polyfill         if (!String.prototype.includes) {           Object.defineProperty(String.prototype, 'includes', {             value: function(search, start) {               if (typeof start !== 'number') {                 start = 0               }                if (start + search.length > this.length) {                 return false               } else {                 return this.indexOf(search, start) !== -1               }             }           })         }         function createAccordion() {             var tdItems = $  .each(thistdResults, function (ind, tdItems) {                 return tdItems;             });             if (accID != 'Search Results'){                 var filterTopic = tdItems.filter(function (e) {                     return e.Categories.toUpperCase() == accID;                 });             }else{                 var filterTopic = tdItems.filter(function (e) {                     var questions = e.Title.toLowerCase();                     return questions.includes(searchVal);                 });             }             var buildAcc = function () {                 var accID2 = accID.replace(/\s/g, '');                 var accBuild = '<div class="accordion" id="' + accID2 + '" role="tablist" aria-multiselectable="true""></div>'                 $  ("#accordionColumn").append(accBuild);             };             buildAcc();             var buildCards = function () {                 if(filterTopic.length !== 0){                     for (i = 0; i < filterTopic.length; i++) {                         var accID2 = accID.replace(/\s/g, '');                         var tdItems = filterTopic[i];                         var headerID = "heading" + tdItems.ID;                         var cardBodyID = "collapse" + tdItems.ID;                         var cardTitle = tdItems.Title;                         if (tdItems.Address){                             var cardAdd = '<p><strong>Address:</strong> ' + tdItems.Address + '</p>'                         }else{                             var cardAdd = ''                         }                         if(tdItems.Numbers){                             var cardNumbers = '<p><strong>Numbers:</strong><br/> ' + tdItems.Numbers + '</p>'                                            }else{                             var cardNumbers = ''                         }                         if (tdItems.Link){                             var cardWebsite = tdItems.Link.slice(0, -1);                             var website = '<p><strong>Website:</strong> <a href="'+ cardWebsite +'" target="_blank">'+ cardWebsite +'</a></p>'                          }else{                             var website = ''                         }                            var cardBuild = '<div class="card">' +                             '<div class="card-header pb-1 pl-0" role="tab" id="' + headerID + '">' +                             '<a class="collapsed" data-toggle="collapse" data-parent="#' + accID2 + '" href="#' + cardBodyID + '" aria-expanded="false" aria-controls="' + cardBodyID + '">' +                             '<h5 class="mb-0 font-thin">' + cardTitle + '<span class="rotate"></span></h5>' +                             '</a>' +                             '</div>' +                             '<div id="' + cardBodyID + '" class="collapse" role="tabpanel" aria-labelledby="' + headerID + '" data-parent="#' + accID + '">' +                              '<div class="card-body py-1 pl-0">' + cardAdd + cardNumbers + website + '</div>'+                             '</div>' +                             '</div>'                         $  (".accordion").append(cardBuild);                     };                     }else{                         var cardBuild = '<h4>There are no results matching your search.</div>'                         $  (".accordion").append(cardBuild);                     }                         //Accordion Icon Animation                     $  ('.accordion > div > div > a').on('click', function () {                         $  (this).find(".rotate").addClass("down");                     });                     $  ('.accordion > div > div > a').on('click', function () {                         $  (this).find(".rotate").addClass("down");                     });                 };             buildCards();          };         createAccordion();         $  ("#topicOptions > li:first-child > a").parent().css({             borderLeft: "solid medium #039BE5",             marginLeft: "-3px"         });          $  ("#topicOptions > li > a").on("click", function () {             event.returnValue = false;             accID = this.innerHTML.toUpperCase();             $  ("[data-search]")[0].value = '';             $  ("#topicOptions > li").css({                 borderLeft: "none",                 marginLeft: "0px"             });             $  (this).parent().css({                 borderLeft: "solid medium #039BE5",                 marginLeft: "-3px"             });             $  .when(effectOut()).done(function () {                 $  (".accordion").remove();                 createAccordion();                 effectIn();             });         });          function topicNav() {             // Create the dropdown base             $  ("<select style=\"border:none; height:50px;\" class=\"browser-default custom-select w-100 z-depth-1\" />").appendTo("#topicNav");             // Create default option "Go to..."             $  ("<option />", {                 "selected": "",                 "value": "Choose a Topic",                 "text": "Choose a Topic"             }).appendTo("#topicNav select");              // Populate dropdown with menu items             $  ("#topicNav > ul > li > a").each(function () {                 var topicsSelect = $  (this);                 $  ("<option />", {                     "value": topicsSelect.text(),                     "text": topicsSelect.text()                 }).appendTo("#topicNav select");             });              // To make dropdown actually work             // To make more unobtrusive: https://css-tricks.com/4064-unobtrusive-page-changer/             $  ("#topicNav select").change(function () {                 accID = $  (this).find("option:selected").val()                 $  .when(effectOut()).done(function () {                     $  (".accordion").remove();                     createAccordion();                     effectIn();                 });             });           };         topicNav();          //Search Function         $  ('[data-search]').keypress(function(event) {             if (event.which == 13){             event.preventDefault();             event.returnValue = false;             accID = 'Search Results';              searchVal = $  (this).val().toLowerCase();                 $  .when(effectOut()).done(function () {                     $  ("#topicOptions > li").css({                         borderLeft: "none",                         marginLeft: "0px"                     });                      $  (".accordion").remove();                     createAccordion();                     effectIn();                 });             }         });         $  ('[data-search-button]').on('click', function(event) {             event.preventDefault();             event.returnValue = false;             accID = 'Search Results';              $  ("#topicOptions > li").css({                 borderLeft: "none",                 marginLeft: "0px"             });              searchVal = $  ('#tdSearch').val().toLowerCase();                 $  .when(effectOut()).done(function () {                     $  ("#topicOptions > li").css({                         borderLeft: "none",                         marginLeft: "0px"                     });                      $  (".accordion").remove();                     createAccordion();                     effectIn();                 });         });     });      webpartMove = $  ("#td")     webpartMove.detach();     webpartMove.appendTo("#fullPageContent");     $  ("#fullPageContent > div > div.row.pt-3.mb-r").removeClass('mb-r pt-3');  </script> 

I need to take some XML/SP Services code and rewrite using ajax

I was given this XML code and they would like to convert it into ajax code. I have never worked with XML/SP Services and I am not sure if what I have done is right.

var accID = 'AIRLINES'; var searchVal = ''; $  (document).ready(function () {      tdResults = $  ().SPServices.SPGetListItemsJson({         webURL: "/airport/business",         listName: "TenantDirectory",         viewName: "",         CAMLQuery: "",         CAMLViewFields: "",         CAMLRowLimit: "",         CAMLQueryOptions: "",         changeToken: "",         contains: "",         mapping: {             ows_Title: {                 mappedName: "Title",                 objectType: "Text"             },             ows_Address: {                 mappedName: "Address",                 objectType: "Text"             },             ows_Numbers: {                 mappedName: "Numbers",                 objectType: "Text"             },             ows_Categories: {                 mappedName: "Categories",                 objectType: "Text"             },             ows_link: {                 mappedName: "Link",                 objectType: "Text"             },             ows_ID: {                 mappedName: "ID",                 objectType: "Text"             },          },         mappingOverrides: null,         debug: false     });  
var tdResults = $  .ajax({     url: apiUrl1,     method: 'GET',     headers: {         'Accept': 'application/json; odata=verbose'     },     success: function (data) {          var items = data.d.results;          for (var i = 0; i < items.length; i++) {              var title = items[i].Title;             var address = items[i].Address;             console.log(address)             var number = items[i].Numbers;             var categories = items[i].Categories;             var id = items[i].ID;             var link = items[i].Link;          } // this ends for loop          /*mappingOverrides: null,         debug: false*/      }, // this ends success function      error: function(data) {         console.log('Error: ' + data);     } }); //end of ajax