首页 > 后端开发 > php教程 > javascript - ajax跨域获取session的问题

javascript - ajax跨域获取session的问题

WBOY
发布: 2016-06-06 20:06:23
原创
1361 人浏览过

最近在研究angularjs,想搞个前后端分离,结果发现ajax跨域请求时session丢失了?
前端www.book.com
后端api.book.com
后端设置了

<code>ini_set('session.cookie_domain', ".book.com");
header("Access-Control-Allow-Origin:*");</code>
登录后复制
登录后复制

所以现在单纯的前端发送ajax请求到后端返回数据是可以获得到的,
但前端发送请求到后端,后端打印session为null。

<code><pre class="brush:php;toolbar:false">array(0) {
}
登录后复制
登录后复制

我做了实验,前端放了个php,test.php

<code><?php ini_set('session.cookie_domain', ".book.com");
session_start();
var_dump($_SESSION);</code></code>
登录后复制
登录后复制

使用www.book.com/test.php访问,结果是有的

<code>array(2) { ["d2d977c58444271d9c780187e93f80e5login"]=> array(2) { ["verify_code"]=> string(32) "748247cb9c625028d55e6a6bb90f7dc8" ["verify_time"]=> int(1464936279) } ["d2d977c58444271d9c780187e93f80e5resigiter"]=> array(2) { ["verify_code"]=> string(32) "2cfddfe2efaa2a0d78cd20c367df52f7" ["verify_time"]=> int(1464930066) } }</code>
登录后复制
登录后复制

也就是说我在跨二级域名直接访问,是成功能获取到session的,但在www.book.com的页面中ajax到api.book.com就拿不到了?

回复内容:

最近在研究angularjs,想搞个前后端分离,结果发现ajax跨域请求时session丢失了?
前端www.book.com
后端api.book.com
后端设置了

<code>ini_set('session.cookie_domain', ".book.com");
header("Access-Control-Allow-Origin:*");</code>
登录后复制
登录后复制

所以现在单纯的前端发送ajax请求到后端返回数据是可以获得到的,
但前端发送请求到后端,后端打印session为null。

<code><pre class="brush:php;toolbar:false">array(0) {
}
登录后复制
登录后复制

我做了实验,前端放了个php,test.php

<code><?php ini_set('session.cookie_domain', ".book.com");
session_start();
var_dump($_SESSION);</code></code>
登录后复制
登录后复制

使用www.book.com/test.php访问,结果是有的

<code>array(2) { ["d2d977c58444271d9c780187e93f80e5login"]=> array(2) { ["verify_code"]=> string(32) "748247cb9c625028d55e6a6bb90f7dc8" ["verify_time"]=> int(1464936279) } ["d2d977c58444271d9c780187e93f80e5resigiter"]=> array(2) { ["verify_code"]=> string(32) "2cfddfe2efaa2a0d78cd20c367df52f7" ["verify_time"]=> int(1464930066) } }</code>
登录后复制
登录后复制

也就是说我在跨二级域名直接访问,是成功能获取到session的,但在www.book.com的页面中ajax到api.book.com就拿不到了?

需要在CORS的头里允许cookie,并且在发起ajax的时候设置withCredentials:true

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板