Javascript 如何从服务器获取数据而无需单击;提交;按钮
我有这个信息:Javascript 如何从服务器获取数据而无需单击;提交;按钮,javascript,jquery,express,Javascript,Jquery,Express,我有这个信息: <h3 id="welcomeUsername">Hello, </h3> 它基本上会将用户名添加到欢迎消息中。但这不会自动触发。我如何做到这一点,并确保客户端不会直接进入新页面 服务器端代码: app.get('/getUsername', function(req, res){ sess=req.session; if(sess.username!=undefined) { res.send(sess.username); } else {
<h3 id="welcomeUsername">Hello, </h3>
它基本上会将用户名添加到欢迎消息中。但这不会自动触发。我如何做到这一点,并确保客户端不会直接进入新页面
服务器端代码:
app.get('/getUsername', function(req, res){
sess=req.session;
if(sess.username!=undefined)
{
res.send(sess.username);
}
else
{
res.redirect('/loginPage'); //res.sendFile(__dirname +'/public/index.html');
}
});
加载页面时,应调用此函数:
$(document).ready(function {pageLoaded();});
如果将其添加到js中,当页面准备就绪时,该函数将被执行。代码中发生的情况是,函数已定义,但从未调用过。在JQuery中,可以使用函数作为参数调用
$
。如果这样做,它将在加载HTMLDOM树后立即加载。你能做的就是添加
$(pageLoaded)
位于脚本底部,因此您可以看到:
function pageLoaded(){
$.get( "/getUsername", function( data ) {
$( "#welcomeUsername" ).append( data );
alert( "Load was performed with data: "+data );
});
}
$(pageLoaded);
要在documentready上调用方法,可以使用:
$(pageLoaded)代码><代码>如何操作并确保客户端不会重新指向新页面代码>若用户未登录,则服务器端脚本会将用户重定向到登录页面。这是你问题的一部分还是什么?很不清楚你在问什么。对不起,这不是问题的重点。基本上我想问的是,为什么$.get()函数不能自己工作?它应该获取用户名,但不与服务器端通信。(我放了一条console.log()消息来检查服务器端是否被调用。它没有被调用。)不,实际上这个函数工作正常。不运行的是$.get()函数。$(document).ready(pageLoaded)
(或者只是$(pageLoaded)
)-当匿名函数只调用pageLoaded()
时,不需要匿名函数。我在主体中添加了onload=“pageLoaded()”。该函数调用得很好。不起作用的是$.get()“不起作用”可以是任何东西。你有没有关于什么不起作用的更多信息?它永远不会到达服务器端。我添加了一条console.log()消息,以查看是否在另一面打印任何内容。没有。那么您的url可能不正确。您提供的javascript适用于我。用户名将附加在消息后面??
function pageLoaded(){
$.get( "/getUsername", function( data ) {
$( "#welcomeUsername" ).append( data );
alert( "Load was performed with data: "+data );
});
}
$(pageLoaded);