我正在使用带有express的nodejs,我试图将ejs加载到这样的div中:
app.js(服务器端)
//SHOW
app.get("/courses/:id", function(req,res){
console.log("requested");
res.render('courses/show', function(err, html){
if(err){
console.log(err);
}
else{
console.log(html);
}
});
});
这会在控制台中打印应该加载到DIV中的HTML
main.js(客户端)
$(".course_link").on('click', function(){
$.ajax({
url: '/courses/asd',
type: 'get',
success: function(view) {
$('#show_load').html(view);
}
});
});
我也尝试过:
$(".course_link").on('click', function(){
$('#show_load').load('/courses/asd', function(){
alert('ayy');
});
});
此提醒' ayy',但无法加载文件
HTML(ejs)
<div class="col-sm-8 courses-menu" id="show_load">
</div>
但是它不会将HTML加载到DIV中,但它确实会控制.logs&#39;要求&#39;当我第一次点击时,它也会在每次点击时发出请求..
答案 0 :(得分:0)
我认为你需要send()
html:
// if a callback is specified, the rendered HTML string has to be sent explicitly
res.render('courses/show', function(err, html) {
res.send(html);
});
https://expressjs.com/en/4x/api.html#res.get
同时确保您的PATH完整:
var PATH = 'http://localhost:3000';
$(".course_link").on('click', function(){
$('#show_load').load(PATH + '/courses/asd', function(){
alert('ayy');
});
});