首页 > 解决方案 > 来自 responseText 的 innerHTML:如何替换特殊字符?

问题描述

我正在调用一个 AJAX api,它返回一个预先格式化的 HTML 字符串,如下所示:

"<table class=\"table\"><thead><tr><th rowspan=\"2\">Hor\u00e1rio <\/th><th colspan=\"2\">
...
</table>"

所以在我的 javascript 代码中,我只想打印这张表:

document.getElementById("container").innerHTML = this.responseText;

但相反,以这种方式显示:

错误的html表

请注意,双引号存在,特殊字符不正确,并且由于这些反斜杠字符而无法关闭诸如th之类的标签。

如何摆脱这个并正确显示表格?是否有一些 javascript 方法可以做到这一点,或者一些 PHP 方法?(我也是这个 API 的开发者)

obs:我没有使用 jquery;

标签: javascriptphpescapingcharacter

解决方案


看起来服务器正在将字符串编码为 JSON,这正在添加所有转义。所以尝试使用JSON.parse().

document.getElementById("container").innerHTML = JSON.parse(this.responseText);

推荐阅读