javascript - 成功的 AJAX post 请求后页面不会呈现

标签 javascript jquery node.js ajax express

我在将 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/

相关文章:

javascript - 使用 html5 localstorage 从服务器检索数据,允许编辑和附加到数据源,然后保存回服务器

javascript - IBM Worklight 6.1 - 如果处于脱机模式,则不会调用 NativePage.show 回调

javascript - 无法删除 Backbone.js View 中的多个事件监听器之一

java - 使用JAVA套接字服务器读取AJAX帖子内容

node.js - 在 angular2 quickstart 中安装 npm 的 Node 模块过多

node.js - _.template渲染结果是一个函数而不是node js中的字符串

javascript - 地理编码不适用于 php mysql 提交表单

javascript - 将数组中的第一项包装在标签中,并将以下项目包装在其他一些标签中

jquery - 如何防止 jQuery ajax 在发布后跟随重定向?

node.js - 按顺序运行 gulp 任务会抛出 `Unhandled stream error in pipe`