【问题标题】:Redirecting to new url with ajax and express routing使用 ajax 和快速路由重定向到新的 url
【发布时间】:2017-12-21 06:49:50
【问题描述】:

我在页面auth.ejs 上有一个带有id: 'tune-in' 的按钮,单击该按钮应转到新页面index.ejs。

但是,当我单击按钮时,index 页面未呈现。相反,我仍然在 auth 页面上,但是我确实在控制台中记录了“应该显示调入主页”的消息。

在 html (ejs) 页面上(视图文件夹 > auth.ejs)

  document.getElementById('tune-in').addEventListener('click', function() {
    $.ajax({
      type: 'GET',
      url: '/tune-in',
      success: function(){
        console.log("should display tune-in home page");
      }
    });
}, false);

控制器文件夹 > authController.js

  app.get('/tune-in', function(req, res){
    res.render('index');
  });

查看文件夹 > index.ejs 这只是一个普通的 html 页面,应该在点击时呈现。

编辑: index.js

var express = require('express');
var cookieParser = require('cookie-parser');

// userController takes care of rendering the view and
// routing requests to the server
var authController = require('./controllers/authController');
var userController = require('./controllers/userController');

var app = express();

app.set('view engine', 'ejs');
app.use(express.static('./public'))
   .use(cookieParser());

authController(app);

app.listen(process.env.PORT || 4000);
console.log("Listening to port 4000...");

【问题讨论】:

  • 我可以加你app.js 或者你的主文件是什么吗?您还可以添加处理路由的位置吗?我想看看您是否正确设置了模板以及您是否正确设置了路线。
  • 这种行为确实是意料之中的,因为您没有要求呈现页面。 $.ajax 只是获取索引的内容。在你告诉它之前它不会渲染内容。
  • @AnamulHasan 但我告诉它在 authController.js 中渲染
  • 你想渲染 index 的内容替换 auth.ejs 的内容。我说的对吗?
  • @AnamulHasan 是的!

标签: javascript ajax express ejs


【解决方案1】:

如果我没记错的话,这就是你需要的。

 document.getElementById('tune-in').addEventListener('click', function() {
$.ajax({
  type: 'GET',
  url: '/tune-in',
  success: function(data){
    console.log("should display tune-in home page");
    // data must be valid html
    $("html").html(data); // this line tells to load the data
    // $("#otherid").html(data);
   }
 });
}, false);

【讨论】:

  • 我认为您收到的内容不是有效的 html。所以它没有正确加载,而是显示空白页面。
  • 不,我无意中重新加载了auth.ejs。几分钟前,我从索引更改为该索引。您的回答完美,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-12
  • 2017-07-25
  • 1970-01-01
  • 2018-08-05
  • 1970-01-01
相关资源
最近更新 更多