PHP session 和跨域請求處理涉及到兩個方面:一是如何在 PHP 中使用 session,二是如何解決跨域請求導致的 session 丟失問題。
session_start();
函數,以開啟 session。$_SESSION
超全局變量來存儲和獲取 session 數據,例如:$_SESSION['username'] = 'John';
echo $_SESSION['username']; // 輸出 "John"
session_destroy();
函數來銷毀 session。當進行跨域請求時,由于瀏覽器的同源策略,可能會導致 session 丟失。為了解決這個問題,可以采取以下措施:
使用 CORS(跨域資源共享)策略。在服務器端設置響應頭,允許跨域請求攜帶憑證(cookie),例如:
header('Access-Control-Allow-Origin: http://example.com'); // 替換為實際的請求源
header('Access-Control-Allow-Credentials: true');
注意,這里的 Access-Control-Allow-Origin
不能設置為通配符 *
,必須指定具體的源。
使用 withCredentials
屬性。在客戶端發起請求時,設置 withCredentials
屬性為 true
,以便攜帶憑證(cookie)。以 JavaScript 的 fetch
為例:
fetch('http://example.com/api', {
method: 'GET',
credentials: 'include' // 設置為 'include' 以攜帶憑證
});
通過以上方法,可以在 PHP 中使用 session,并解決跨域請求導致的 session 丟失問題。