窗口session范围

浏览器中限定session存在的范围仅在本窗口与子窗口及其对话框,而本窗口可以传递session,而对话框只能引用session却不能传递。
也就是说window.open().open().open().....是session传递的过程。
而window.dialog()只能使用session,其dialog.open()或dialog.dialog()都不能得到session。


另外我们要指出session传递万能的方法:
url请求指定的target,如href与form sumit,它之所以能取得session是因为请求必须需要session去提交请求

 

为了允许dialog能open window我们需要让dialog的页面来打开窗口,我们应该采用请求方式传递窗口,如组件一个href和form提交,
然后我们给以一个target,当target找不到时会自动创建窗口,其效果类似与dialog.open()。
可能大家注意到dialog传dialog不需要session的设计,是因为不会需要dialog再打开dialog的情况。可参阅对话框与窗口的定义

 

这里需要强调的是:
一些文章中提到用div层替代dialog模式的方式,笔者认为这不是一种安全的做法,有经验的人很轻易就可以破解它。dialog模式才是安全的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值