EJS脚本无法在ajax 'success'调用中执行的原因是EJS是一种服务器端模板引擎,它的主要作用是在服务器端生成HTML代码,然后将其发送到客户端进行渲染。而ajax的'成功'回调函数是在客户端执行的,无法直接执行服务器端的EJS脚本。
解决这个问题的方法是,在服务器端先使用EJS模板引擎生成HTML代码,然后将其作为ajax请求的响应返回给客户端,客户端再将返回的HTML代码插入到页面中。具体步骤如下:
const ejs = require('ejs');
const express = require('express');
const app = express();
app.set('view engine', 'ejs');
app.get('/data', (req, res) => {
const data = {
message: 'Hello, World!'
};
res.render('template', data);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
$.ajax({
url: '/data',
success: function(html) {
$('#content').html(html);
}
});
在上述代码中,服务器端使用EJS模板引擎生成HTML代码,并将其作为响应返回给客户端。客户端使用ajax发送请求,并在成功回调函数中将返回的HTML代码插入到id为'content'的元素中。
这样就实现了在ajax 'success'调用中执行EJS脚本的效果。需要注意的是,服务器端和客户端都需要引入相应的库(如EJS和jQuery)来支持相关功能。
关于EJS的更多信息和使用方法,可以参考腾讯云的EJS产品介绍页面:EJS产品介绍。
领取专属 10元无门槛券
手把手带您无忧上云