javascript - ajax跨域擷取session的問題

來源:互聯網
上載者:User
關鍵字 javascript php
最近在研究angularjs,想搞個前後端分離,結果發現ajax跨域請求時session丟失了?
前端www.book.com
後端api.book.com
後端設定了

ini_set('session.cookie_domain', ".book.com");header("Access-Control-Allow-Origin:*");

所以現在單純的前端發送ajax請求到後端返回資料是可以獲得到的,
但前端發送請求到後端,後端列印session為null。

array(0) {}

我做了實驗,前端放了個php,test.php

使用www.book.com/test.php訪問,結果是有的

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) } }

也就是說我在跨次層網域直接存取,是成功能擷取到session的,但在www.book.com的頁面中ajax到api.book.com就拿不到了?

回複內容:

最近在研究angularjs,想搞個前後端分離,結果發現ajax跨域請求時session丟失了?
前端www.book.com
後端api.book.com
後端設定了

ini_set('session.cookie_domain', ".book.com");header("Access-Control-Allow-Origin:*");

所以現在單純的前端發送ajax請求到後端返回資料是可以獲得到的,
但前端發送請求到後端,後端列印session為null。

array(0) {}

我做了實驗,前端放了個php,test.php

使用www.book.com/test.php訪問,結果是有的

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) } }

也就是說我在跨次層網域直接存取,是成功能擷取到session的,但在www.book.com的頁面中ajax到api.book.com就拿不到了?

需要在CORS的頭裡允許cookie,並且在發起ajax的時候設定withCredentials:true

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.