Obtengo el código HTML a través de una llamada AJAX y luego agrego el código a un elemento HTML existente . El problema es que el código adjunto contiene caracteres de escape, lo que hace que el HTML se rompa y da como resultado elementos desordenados que se ven así: Contact Us ▸<\/a><\/li>\n : 
El elemento HTML es: <li class="listitems"><a href="https:\/\/website.com\/contact" class="listlinks">Contact Us ▸<\/a><\/li>\n</a></li>
Como referencia, la respuesta ajax recibida es:
"<li class='listitems'><a href='https:\/\/website.com\/contact' class='listlinks'>Contact Us ▸<\/a><\/li>\n" Y el código JavaScript utilizado para agregar esto al elemento ul existente es:
let r = httpRequest.responseText; // The AJAX response document.getElementById('mylist').insertAdjacentHTML("beforeend",r);También he intentado usar lo siguiente:
let r = httpRequest.responseText; // The AJAX response document.getElementById('mylist').interHTML += r;pero estoy observando los mismos resultados.
Sin embargo, cuando pruebo el código JavaScript en la consola del navegador: Obtengo los resultados esperados : Contáctenos ▸ 
Y el elemento HTML es: <li class="listitems"><a href="https://website.com/contact" class="listlinks">Contact Us ▸</a></li>
No puedo entender por qué el código no se escapa y se evalúa como HTML normalmente, pero funciona cuando lo hago manualmente usando la ventana de la consola del navegador .
¿Alguien puede decirme qué me estoy perdiendo aquí y cómo puedo solucionarlo?
La respuesta es JSON, debe analizarla.
let responseText = `"<li class='listitems'><a href='https:\\/\\/website.com\\/contact' class='listlinks'>Contact Us ▸<\\/a><\\/li>\\n"`; let r = JSON.parse(responseText); document.getElementById('mylist').insertAdjacentHTML("beforeend",r); <ul id="mylist"> </ul>