Express JS会话不持久

时间:2018-07-31 02:58:05

标签: javascript node.js express

我正在本地测试我的Express JS服务器和网站。该网站应该使用javascript将HTTP请求发送到快速服务器,到目前为止,该服务器运行良好,但我的会话未保存。我已经花了数小时来结束对多种不同事物的测试,并遵循了许多教程,但该课程仍然无法保存。我尝试过有和没有CORS。当我在浏览器中访问该URL时,该会话工作正常,但是在我正在开发的页面上,我只是在服务器上对该会话保持未定义状态。

这是我削减到的最小代码示例(来自https://www.tutorialspoint.com/expressjs/expressjs_sessions.htm和其他地方的CORS内容):

var express = require( 'express' );
var cookieParser = require( 'cookie-parser' );
var session = require( 'express-session' );

var app = express();

app.use(function( req, res, next ) 
{
    res.header( 'Access-Control-Allow-Origin', '*' );
    res.header( 'Access-Control-Allow-Credentials', true );
    res.header( 'Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE' );
    res.header( 'Access-Control-Allow-Headers', "Origin, X-Requested-With, Content-Type, Accept" );
    next();
});

app.use( cookieParser() );
app.use( session( { secret: 'ssshhhhh' } ) );

app.get( '/test', function( req, res, next )
{
   if( req.session.page_views )
   {
      req.session.page_views ++;
      res.send( "You visited this page " + req.session.page_views + " times" );
   } 
   else 
   {
      req.session.page_views = 1;
      res.send( "Welcome to this page for the first time!" );
   }

   console.log( "viewcount " + req.session.page_views );
});
app.listen( 4444 );

这是我的jquery请求(我也曾在ajax中尝试过,带有凭据,没有您命名):

$.get( "http://localhost:4444/test", {}, 
    function( data )
    {
        alert( data );
    });

我已经连续花费了多天-谢谢您的帮助。

0 个答案:

没有答案