后端返回的HTML代码字符串怎么能自动渲染到前端页面

前台用 form 表单的形式提交数据,后台通过 res.render(用的ejs) 可以正常渲染前端的页面,后台代码如下:

router.post('/classifyadd', (req, res) => {    let {classifyname} = req.body;
    Classify.create({
        name: classifyname
    }).then(doc => {
        responseData.msg = doc.name;
        
        res.render('admin/frame', {
            page: 'successtip'
        });
    });
});

问题是:当我用 ajax 的形式提交数据,后台同样的写法,前端却不能渲染,我看了响应头也确实是 Content-Type: text/html; charset=utf-8

我知道前端拿到数据后可以通过 innerHTML 的形式塞进页面,但不确定这是不是一个正确的方法?

还是用 AJAX 请求时,后端就不能直接渲染(res.render),只能返回数据,前端拿到数据后再操作DOM,还有其他方法吗?

同样的问题链接,还没有一个好的方案。谢谢各位!


汪汪一只猫
浏览 10786回答 1
1回答

撒科打诨

应该只返回纯数据,前端再渲染成 HTML。直接 innerHTML 有可能导致 XSS 攻击。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Node.js