技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> JavaScript --> 用Flash理跨域上传或异步请求不能传Cookie的解决方案

用Flash理跨域上传或异步请求不能传Cookie的解决方案

浏览:2067次  出处信息

    用flash上传或flash做代理异步请求的时候,因为flash不能直接传递浏览器中的cookie到服务器,引起SESSION无法识别身份。想当年刚碰到这个问题的时候会非常头痛。其实在PHP里面,解决时很容易的。

    客户端:把cookie变量添加到URL

    var url = 'http://www.vkas.net/index.php?user/account/getInfo';
    if(document.cookie.length > 0) {
        var cookies = document.cookie.split(';');
        for(var i in cookies) {
            url += '&' + encodeURI(cookies[i].replace(/^\s+|\s+$/g, ''));
        }
    }
  

    服务器端:把URL中传的cookie.session.name设置到session id。这个过程必须在session_start()之前做。

    // 解决Flash不能传Cookie
    if (!empty($_GET[session_name()])) {
        session_id($_GET[session_name()]);
    }

建议继续学习:

  1. 关于IO的同步,异步,阻塞,非阻塞    (阅读:14551)
  2. cookie窃取和session劫持    (阅读:12969)
  3. fsockopen 异步处理    (阅读:9088)
  4. curl 命令使用cookie    (阅读:8768)
  5. 优雅绝妙的Javascript跨域问题解决方案    (阅读:6758)
  6. 前端开发中Cookie那些事儿    (阅读:6224)
  7. jQuery中getJSON跨域原理详解    (阅读:5638)
  8. 跨域请求的iframe解决方案(1)    (阅读:5409)
  9. 配合jquery实现异步加载页面元素    (阅读:5387)
  10. 如何设置一个永远无法删除的Cookie    (阅读:5280)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1