我有两份申请。App1是一些老的自制的php项目,没有使用Zend。App2是一个很小的Zend应用程序。
http://test.pmueller.dev.xiag.ch/这只是为了测试。在本例中,它表示App1。
如果您单击显示在时事通讯313,您将登录并看到时事通讯。这是一个正常的跨域post呼叫。登录在后台进行。复制粘贴该url。
现在,删除cookie。如果您重新加载该选项卡,您应该会收到一个错误,因为您不再登录。
失败的原因如下:
单击登录按钮时,您应该已登录。这意味着,您首先单击该按钮。然后,打开一个新的标签页,再次转到刚才的时事通讯。
如您所见,通过ajax登录不起作用。为什么?我真的不明白为什么它会将我的cookie设置为普通的post,但在进行ajax调用时不会。
发布于 2012-03-23 23:12:21
使两个应用程序的会话处理程序使用相同的域。因此,如果你有app1.foo.bar.com和app2.foo.bar.com,你应该在你的两个应用程序中做类似这样的事情:
Zend_Session::setOptions(array(
'cookie_domain' => '.foo.bar.com'
));此代码的一个位置是Bootstrap,但在调用Zend_Auth::getInstance()->hasIdentity()或启动会话之前的任何位置都应该可以。
https://stackoverflow.com/questions/9784023
复制相似问题