最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何与智威汤逊验证之后呈现

运维笔记admin11浏览0评论

如何与智威汤逊验证之后呈现

如何与智威汤逊验证之后呈现

在和的NodeJS应用快。认证与JWT。我已经实现了认证系统,智威汤逊与邮差它完美的作品。问题是当请求传递认证中间件和经过管理我想渲染页面的GET控制器后,我收到的响应和处理res.text()返回文本字符串。在文本字符串,我得到完整的网页我想,我有文件撰写(resBody)渲染它,这将更新与新的页面中的内容,但不更新既不是历史,也不是浏览器窗口,这是一个有点拙劣。有什么办法来渲染JavaScript中的反应呢?谢谢

// index.hbs
...
...
...
<form id="enter"  enctype="multipart/form-data" name="enter">
    <input type="submit" value="Entrar"> 
</form>

<script type="text/javascript">
    const formEnter = document.querySelector('#enter')
    formEnter.addEventListener('submit',function(event){
        token = "Bearer " + localStorage.getItem('token')
        fetch('/api/brands',{
            method:'get',
            headers: {
                'Content-Type':'application/json;charset=UTF-8',
                'Authorization': token
            }
    .then(function(response) {
       return response.text()
    }).then(resBody => {
       document.write(resBody)  //<--- resBody tiene la página que quiero renderizar
    })
</script>


//brandCtrl.js

...
...


function getBrands(req,res){
    Brand.find({}, (err,brands) => {
        if (err) return res.status(500).send({message: `Error en la petición: ${err}`})
        if (!brands) return res.status(404).send({message: `No se existen Marcas en la BD`})

        res.locals.brands = brands
        res.render("brands/brands",res.locals.brands)
    })
}


...
...
回答如下:

不知道你是什么意思“渲染JavaScript中的响应”的意思。您可以期待您的节点应用程序在成功认证返回一个JSON响应(使用res.json(你的回答JSON))或渲染一个模板(res.render(“一些模板”))。

您未使用正确获取API。您的要求期待的JSON响应,但您发送HTML字符串作为响应。

如果你想使用JavaScript来渲染HTML页面。你可以使用jQuery:

$('body').load( url,[data],[callback] ); 

你可以在这里签出的文档。 http://api.jquery/load/#urldatacallback

然后,你可以通过使用history.pushState更改浏览器的历史记录。但所有这一切已经被任何前端框架完成。因此,无论使用一个或手动完成。

发布评论

评论列表(0)

  1. 暂无评论