8

Express セッションと Ajax セッションで問題が発生しています。私のアプリケーションは、Ajax (POST & GET) を介してリクエストを受け取り、セッション変数を設定します。リクエストが ajax からのものでない場合、セッションは正常に機能しますが、逆の場合は機能しません。例えば ​​:

if (typeof req.session.id == 'undefined'){
req.session.id = 1;

}

else {
req.session.id++;
 } 
res.send({session:req.session.id});

今、私が localhost:3000/ を実行すると、すべてがうまくいき、毎回増加します。$http を介して角度から同じことを行うと、1 を取得し続けます。角度に問題がある場合に備えて、PHP でも同じことを試しましたが、問題なく動作します。ajax 呼び出しは localhost:80 からのものであることに注意してください。

私のエクスプレスセットアップ:

app.use(express.bodyParser());
app.use(express.cookieParser('secret'));
app.use(express.cookieSession({secret:'mySecret'}));
app.use(express.session({store:new express.session.MemoryStore(),maxAge : new Date(Date.now() + 3600000)}));
app.use(app.router)

編集

console.log(req); を実行して 私は、AJAXから来ていないときに次のようになることに気付きました:

 cookies:

{ PHPSESSID: 'jm2p2kn7etmofrp48s8sv4pu47', ZDEDebuggerPresent: 'php', '': 'phtml', user_admin: 'MTUzOnJvb3Q6U2ptaHJpZmllaG8=', 'connect.sess': 's:j:{"id":7}.oIAoC356/z4fQ+ +iH44N7YxWZWEP49bTHp1h/gpaELY' }

しかし、AJAXから来たときは{}を取得します

4

1 に答える 1

7

node.js で:

res.header('Access-Control-Allow-Credentials', 'true');

ajaxで:

xhr.withCredentials = true;
于 2013-01-20T09:28:24.030 に答える