浏览 5097 次
锁定老帖子 主题:隐藏iframe提交不能设置session
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-13
最后修改:2010-12-13
表象上看,iframe里设置session会出问题,我在网上查了设置P3P头的方法,此方法只是解决ie权限问题的,可是我使用的是firefox,这种方法对我来说还是不起作用。 如果我把下面代码的第一句var ifr = d.createElement("IFRAME");改称var ifr = d.createElement("DIV");就会重定向的其他页面,session也设置成了,可是就失去了用iframe隐式提交的目的了。 请大家提出宝贵方案。谢谢! 其实这个问题可以简化为,为什么在js生成的iframe下不能设置session? var ifr = d.createElement("IFRAME"); ifr.name = generate_tmpid(10); ifr.id = ifr.name; ifr.style.display = "none"; d.getElementsByTagName('body')[0].appendChild(ifr); try { w.frames[ifr.name].name = ifr.name } catch(e) {} var frm = d.createElement("FORM"); frm.method = "POST"; frm.action = 'postform_attachupl'; frm.enctype = "multipart/form-data"; frm.encoding = "multipart/form-data"; frm.target = ifr.name; frm.name = generate_tmpid(10); frm.style.display = "none"; var inp1 = d.createElement("INPUT"); inp1.type = "hidden"; inp1.name = "keyy"; inp1.value = postform_generate_tmpid(10); frm.appendChild(inp1); var inp2 = fileinput.cloneNode(true); inp2.name = "file"; inp2.disabled = false; if(inp2.value == fileinput.value) { frm.appendChild(inp2); d.getElementsByTagName('body')[0].appendChild(frm); frm.submit(); } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-12-13
记得测试过firefox和chrome都无问题,连用script标签请求都能正确设置cookie
|
|
返回顶楼 | |
发表时间:2010-12-13
clue 写道 记得测试过firefox和chrome都无问题,连用script标签请求都能正确设置cookie
应该不是cookie问题,我httpwatch显示两次请求cookie里的session号是一致的。 我就是在第一次iframe action页面设置了$_SESSION['a'] = 'b';在第二个请求页面得不到这个结果 |
|
返回顶楼 | |
发表时间:2010-12-13
jeffgeng 写道 clue 写道 记得测试过firefox和chrome都无问题,连用script标签请求都能正确设置cookie
应该不是cookie问题,我httpwatch显示两次请求cookie里的session号是一致的。 我就是在第一次iframe action页面设置了$_SESSION['a'] = 'b';在第二个请求页面得不到这个结果 你的意思是在后端php中无法获取表单提示时存储的数据? 并且你有提到两次请求时session_id是一致的,那应该不是前端问题了。 建议看看是不是次序问题,你是在请求完成后再进行第二次请求的吗? |
|
返回顶楼 | |
发表时间:2010-12-13
clue 写道 jeffgeng 写道 clue 写道 记得测试过firefox和chrome都无问题,连用script标签请求都能正确设置cookie
应该不是cookie问题,我httpwatch显示两次请求cookie里的session号是一致的。 我就是在第一次iframe action页面设置了$_SESSION['a'] = 'b';在第二个请求页面得不到这个结果 你的意思是在后端php中无法获取表单提示时存储的数据? 并且你有提到两次请求时session_id是一致的,那应该不是前端问题了。 建议看看是不是次序问题,你是在请求完成后再进行第二次请求的吗? 嗯,我查一下,是第一次设置的session,第二次取不到。 补充一下,如果把上边代码frm.target = ifr.name;这句改称frm.target = '_top'就可以取到了,所以我怀疑是iframe的问题,哪位给提示一下,谢拉! |
|
返回顶楼 | |