【发布时间】:2018-06-07 11:29:00
【问题描述】:
我在 expressjs 中遇到 res.render() 的问题 我使用 ajax 请求这条路线:
route.get('/about',authentication,(req,res)=>{
res.render('about');
});
我做了一些搜索,发现res.render 不适用于 ajax 调用
那么如何在没有res.render() 的情况下更改和呈现页面。
如果我删除res.render 和console.log 它实际上可以工作任何代码工作但不是res.render(通过单击链接我在带有ajax 请求的标头中发送一个令牌然后在我的路由中我有一个身份验证中间件获取令牌然后将用户重定向到about.ejs 页面)
我只想更改页面。任何想法都会对大家有所帮助。 谢谢 这是前端请求:
$(document).ready(function(){
$('#about').click(function(){
// window.location.href='/about';
$.ajax({
method:'get',
url:'http://localhost:5000/about',
headers:{"authtoken":localStorage.getItem('authToken')}
}).done(()=>{
// window.location.href='/about';
}).catch(e=>console.log('header.ejs error'));
});
});
【问题讨论】:
-
res.render() 表示您正在从服务器返回视图。为什么要在 ajax 中返回视图。我的意思是你的预期结果是什么?
-
我只想渲染一个页面,如果你有任何其他解决方案说 plz。我刚开始编程,所以我不知道正确的方式。请让我知道
-
您应该显示用于请求
about页面的客户端JavaScript 代码。res.render可以处理 ajax 请求,但这取决于你真正想要做什么。 -
@t.niese 我更新了问题,你现在可以看到代码了。thx
-
您对
.done(()=>{ }回调中的响应什么都不做,那么您为什么希望向客户端显示某些内容呢?如果您执行$.ajax,jQuery 不会神奇地替换网站上的内容。
标签: javascript node.js ajax express render