PHP 設定多域名允許跨域訪問

菜就多努力呀n發表於2019-04-26

針對 PHP 語言設定多域名允許跨域訪問

  1. 伺服器變數:

    • 伺服器變數儲存在 $_SERVER 陣列中,在這個陣列中有一個特殊的鍵值:HTTP_ORIGIN。這個鍵只在跨域的時候才會存在值,同源時為空字串
  2. 響應頭設定允許某域名訪問:access-control-allow-origin

    • header 函式可以設定允許某域名跨域訪問,形式為 header('access_control_allow_origin:*')
  3. 貼程式碼:

    $allow_origin = array(
        'a.baidu.com',
        'b.baidu.com',
    );
    //跨域訪問的時候才會存在此欄位
    $origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';  
    if (in_array($origin, $allow_origin)) {
        header('Access-Control-Allow-Origin:' . $origin);
    } else {
        return;
    }

    note:通過介面工具請求介面時 $_SERVER['HTTP_ORIGIN'] 變數也為空字串。

刻意練習,日益精進。

相關文章