美文网首页
iframe内页面cookie同步解决方案

iframe内页面cookie同步解决方案

作者: 是嘤嘤嘤呀 | 来源:发表于2020-02-19 21:56 被阅读0次
    解决思路

    通过form表单提交post请求,通过target关联iframe渲染结果,参考:https://stackoverflow.com/questions/4701922/how-does-facebook-set-cross-domain-cookies-for-iframes-on-canvas-pages

    代码片段
    <form action="your_post_action" method="post" target="myframe" id="myform">
        <input type="submit" value="提交" id="btn" />
    </form>
    <iframe name="myframe"></iframe>
    

    说明

    your_post_action:负责setCookie和重定向到真实要渲染在iframe里的地址,需要注意的是:
    1、your_post_action必须是post请求;
    2、your_post_action接口和最后要访问的页面,hostname最好相同,否则还要解决set不了cookie的问题。后端setcookie不成功和iframe内http请求携带不了cookie是两回事。

    举个栗子
    // 后端有个接口叫set_cookie_for_iframe
    app.post("/set_cookie_for_iframe",function(req,res){
      res.cookie("name",'zhangsan', {maxAge: 900000, domain: "192.168.189.210"});  
      res.redirect('http://192.168.189.210:30008/');
    });
    
    // 前端:method必须是post
    <form action="http://192.168.189.210:8000/set_cookie_for_iframe" method="post" target="myframe" id="myform">
        <input type="submit" value="提交" id="btn" />
    </form>
    <iframe name="myframe"></iframe>
    

    相关文章

      网友评论

          本文标题:iframe内页面cookie同步解决方案

          本文链接:https://www.haomeiwen.com/subject/gipzfhtx.html