ajax异步请求,但是express req.json 返回数据后,将html字符串插入到元素中出现了引号,可咋办?
使用marked将markdown转换为html
转换后的html字符串
"<p><strong>优秀的美剧学习平台</strong></p><p><br/>是一个美剧的学习交流的平台。</p><p><br/></p>"
后台路由
router.get('/explain', function(req, res) {
if (req.query['WhichExplain'])
{
var filename = '/path/' + req.query['WhichExplain'] + '.md';
fs.readFile(filename, 'utf-8', function(err, data) {
if (err){
console.log(err);
} else {
var text = mark(data);
res.json(text.toString().replace(/\s+/g, '')); // 去除了换行符\n
}
});
}
else // 默认渲染没有问题
{
fs.readFile("/path/default.md", 'utf-8', function (err, data) {
if (err) throw err;
var source = data.toString();
var about_html = mark(source);
res.render('explain', {about_content: about_html});
});
}
});
前台ajax处理响应
function XHRReadyState(xhr, Fun){
return function() {
if (xhr.readyState == 4) {
if ((xhr.status >= 200 && xhr.status < 300 || xhr.status == 304)) {
var content = xhr.responseText;
var explainCont = Fun(); // 返回要插入的div对象
explainCont.innerHTML = content;
}
else
{
console.log('Request was unsuccessful: ' + xhr.status);
}
}
else
{
console.log('正在加载中......' + xhr.readyState);
}
};
}
结果有引号