2017-07-16 6 views
0

id: 'tune-in'のボタンがauth.ejsのページにあります。これは、クリックすると新しいページindex.ejsに移動する必要があります。ajaxとエクスプレスルーティングで新しいURLにリダイレクト

ただし、ボタンをクリックすると、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ページです。クリックしてレンダリングする必要があります。

EDIT: 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..."); 
+0

「app.js」を追加することも、メインファイルの内容を追加することもできますか?また、ルーティングを扱う場所を追加することもできますか?私はあなたが正しくテンプレートを設定しているかどうか、あなたのルートを正しく設定しているかどうかを確認したい。 –

+0

この動作は、ページのレンダリングを要求していないときには本当に予想されます。 $ .ajaxはインデックスの内容を取得するだけです。それはあなたがそれを伝えるまでコンテンツをレンダリングしません。 – error404

+0

@AnamulHasanしかし、私はauthController.jsでレンダリングするよう指示しています – Kek

答えて

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); 
+0

あなたが受け取った内容は有効なhtmlではないと思います。したがって、正しく読み込まれず、代わりに空のページが表示されます。 – error404

+0

いいえ、私は 'auth.ejs'を偶然読み込んでいました。私は数分前に指数からそれに変更しました。あなたの答えは完璧に働いた、ありがとう! – Kek

関連する問題