有段时间没更新博客了, 今天要给大家分享的内容是项目开发过程中会需要实现Session跨域的技术问题, 在解决该问题之前, 我们可以先想想怎么去实现session跨域,
实现session跨域需要解决哪些问题, 如果知道需要解决哪些问题,那么实现session跨域就简单了。
那么实现session跨域问题需要解决哪些问题了, 主要有以下几点:
- 通过什么方法来传递session_id
- 通过什么方法来保存session信息
- 通过什么方法来进行跨域
解决以上问题就相当于实现session跨域了。有时候解决一个问题的时候, 逆向思考问题, 会很快得到解决问题的答案。
传递session_id有4种方法
1、 通过cookie
2、 设置php.ini中的session.use_trans_sid=1,让PHP自动跨页传递session id
3、 手动通过url或隐藏表单传值
4、 用文件或数据库方式传递,在通过其他key对应取值
保存session信息有3种方法
1、数据库
2、memcache/redis
3、共享文件
跨域访问的方法
1、通过服务器(php脚本)
2、通过JavaScript
由于,各种原因。我选择的方案是:
1、cookie传递session_id
2、文件保存sesson信息
3、通过服务器脚本跨域
啥也不说了,上代码了。这两段代码都是用php脚本设置的
设置允许跨域的域名
|
|
设置跨域的cookie
|
|
访问跨域的api时,不附带cookie问题的解决代码,需要操作两个步骤:(使用jquery的ajax方法)
写好客户端的js代码
|
|
写好服务器端的代码
|
|
这种方案,有不能跨服务器的缺陷。跨域还有些坑,有待发掘。
参考资料文献:
http://blog.163.com/lgh_2002/blog/static/4401752620105810501715/