我在将 js 前端链接到 Node/Express 后端时遇到问题。当我从客户端 js 向服务器发出请求时,我的请求返回成功,但我请求的页面未呈现。
服务器端我有:
app.get('/dashboard', (req, res) => res.render('dashboard/dashboard', { updates, agendaItems }));
客户端:
$.ajax({
type: 'GET',
url: '/dashboard',
data: context,
success: function () {
console.log('success');
},
error: function (jqXHR, textStatus, err) {
console.log(textStatus);
}
});
我没有收到任何错误,并且控制台中显示了 console.log('success') 。当我去 http://localhost:27017/dashboard或者我在 Postman 中发出 get 请求,我的路由确实按预期工作。我遇到的唯一问题是从客户端 js 发出路由请求。我通过单击按钮发出 ajax 请求。
最佳答案
术语“ajax”指的是“异步 javascript 和 xml”(恕我直言,这是一个愚蠢的名称)。这是一个可以通过网页中运行的代码发出的 http 请求。页面的代码负责处理响应 - 默认情况下浏览器不会对其执行任何操作。
这与重定向浏览器相反,重定向浏览器指示浏览器发出请求并通过解析和渲染等方式处理响应。
如果需要,ajax() 调用中的 success 函数可用于解析和显示响应,但需要更多工作,并且通常更容易组织应用程序以尽可能多地使用浏览器的默认行为。
指示浏览器重定向用户将实现此目的:
window.location = "/dashboard";
关于javascript - 成功的 AJAX post 请求后页面不会呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48009229/