Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从服务器获取数据而无需单击;提交;按钮_Javascript_Jquery_Express - Fatal编程技术网

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