我通過 AJAX 呼叫獲取 HTML 代碼,然后將其附加到現有的 HTML 元素中。問題是,附加代碼包含轉義字符,導致 HTML 中斷,并導致看起來像這樣的隨意元素Contact Us ?<\/a><\/li>\n:

HTML 元素是:<li ><a href="https:\/\/website.com\/contact" >Contact Us ?<\/a><\/li>\n</a></li>
作為參考,收到的 ajax 回應是:
"<li class='listitems'><a href='https:\/\/website.com\/contact' class='listlinks'>Contact Us ▸<\/a><\/li>\n"
用于將其添加到現有ul元素的 JavaScript 代碼是:
let r = httpRequest.responseText; // The AJAX response
document.getElementById('mylist').insertAdjacentHTML("beforeend",r);
我也嘗試過使用以下內容:
let r = httpRequest.responseText; // The AJAX response
document.getElementById('mylist').interHTML = r;
但我觀察到相同的結果。
但是,當我在瀏覽器的控制臺中嘗試任一 JavaScript 代碼時:我得到了預期的結果:聯系我們 ?
HTML元素是:<li ><a href="https://website.com/contact" >Contact Us ?</a></li>
我無法理解為什么代碼沒有被正常地轉義和評估為 HTML,但是當我使用瀏覽器的 console window 手動執行它時它可以作業。
誰能告訴我我在這里缺少什么以及如何解決這個問題?
uj5u.com熱心網友回復:
回應是 JSON,您需要對其進行決議。
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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/478133.html
標籤:javascript html 阿贾克斯 逃跑
