Heim > Backend-Entwicklung > PHP-Tutorial > javascript - ajax跨域获取session的问题

javascript - ajax跨域获取session的问题

WBOY
Freigeben: 2016-06-06 20:06:23
Original
1343 Leute haben es durchsucht

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

<code>ini_set('session.cookie_domain', ".book.com");
header("Access-Control-Allow-Origin:*");</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

<code><pre class="brush:php;toolbar:false">array(0) {
}
Nach dem Login kopieren
Nach dem Login kopieren

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

<code><?php ini_set('session.cookie_domain', ".book.com");
session_start();
var_dump($_SESSION);</code></code>
Nach dem Login kopieren
Nach dem Login kopieren

使用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>
Nach dem Login kopieren
Nach dem Login kopieren

也就是说我在跨二级域名直接访问,是成功能获取到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>
Nach dem Login kopieren
Nach dem Login kopieren

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

<code><pre class="brush:php;toolbar:false">array(0) {
}
Nach dem Login kopieren
Nach dem Login kopieren

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

<code><?php ini_set('session.cookie_domain', ".book.com");
session_start();
var_dump($_SESSION);</code></code>
Nach dem Login kopieren
Nach dem Login kopieren

使用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>
Nach dem Login kopieren
Nach dem Login kopieren

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

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage