在PHP中處理CORS(跨域資源共享)時,如果希望在跨域請求中包含cookie,需要在服務(wù)器端設(shè)置相應(yīng)的響應(yīng)頭。以下是在PHP中處理CORS并包含cookie的示例代碼:
<?php
// 允許來自任何域的跨域請求
header("Access-Control-Allow-Origin: *");
// 允許包含cookie
header("Access-Control-Allow-Credentials: true");
// 允許的請求方法
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
// 允許的請求頭
header("Access-Control-Allow-Headers: Content-Type, Authorization");
// 如果是預(yù)檢請求,返回允許的請求方法和請求頭
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
exit;
}
// 處理其他請求邏輯
在上面的示例中,首先設(shè)置了允許跨域請求的來源為任意域,然后設(shè)置了允許包含cookie的響應(yīng)頭。同時也設(shè)置了允許的請求方法和請求頭。對于預(yù)檢請求(OPTIONS請求),返回允許的請求方法和請求頭,然后退出。
這樣就可以在PHP中處理CORS并包含cookie。需要注意的是,瀏覽器在發(fā)送包含cookie的跨域請求時,會先發(fā)送一個預(yù)檢請求,服務(wù)器端需要對預(yù)檢請求做出相應(yīng)的處理。