从ajax发布时,nodejs express会话未定义

时间:2015-07-24 01:51:34

标签: javascript ajax node.js session

在发布此处之前,我已阅读并尝试了之前关于该主题的所有问题。 我有很多页面都以相同的方式工作(会话被保存) 但我有这一页,它不是,我无法弄清楚为什么......

我有这个功能:

function saveuser(){     
     uId = $('#userId').val();
     f = $('#firstName').val();
     l = $('#lastName').val();
     u = $('#firstname').val();
     p = $('#password').val();
     e = $('#email').val();
     ph = $('#phone').val();
     usernamee = $('#username').val();

            $.ajax({
                type:"POST",
                url:"/registerp",
                data:{
                   userId:uId,
                   firstName:f,
                   lastName:l,
                   password:p,
                   phone:ph,
                   email:e,
                   username:usernamee
                },
                success:function(data){
                   if(data.success){
                    showNotification({
                        message: "Profile saved successfully.",
                        autoClose: true,
                        type: "success",
                        duration: 3
                    });   
                    }
                    else
                    {
                    showNotification({
                        message: "Failed to save profile.",
                        autoClose: true,
                        type: "error",
                        duration: 3
                    });   
                    }
                }
            });
    }

我撤回的所有信息也都放在session的页面上。 当我调用此POST时,req.session将重置为空,并且所有数据都会消失。

httponly=false

其他页面工作正常,其中一些页面功能相似, 我在这做错了什么?

1 个答案:

答案 0 :(得分:1)

我设法解决了这个问题。 我知道除非服务器向客户端返回内容,否则不会保存会话。

好吧,我在同一个POST上使用重定向到另一个页面。 我认为重定向是客户端的一种GET,这是我的错误。 我通过返回一些随机项来解决它

res.send({success:true});对于那个AJAX函数,并补充说如果javascript中的success = true,那么我将从同一个操作执行GET调用。

解决了它。