1. 程式人生 > >PHP解決跨域問題

PHP解決跨域問題

1、允許所有域名訪問

header('Access-Control-Allow-Origin: *');

2、允許單個域名訪問

header('Access-Control-Allow-Origin: https://test.com');

3、允許多個域名訪問

  • 在實際專案中最好指定能跨域訪問的域名,增加安全性。可以寫在一個公共類裡面,封裝一個方法呼叫。
// 設定能訪問的域名
static public $originarr = [
   'https://test1.com',
   'https://test2.com',
];
 
/**
 *  公共方法呼叫
 */
static public function setheader()
{
   // 獲取當前跨域域名
   $origin = isset($_SERVER['HTTP_ORIGIN']) ? $_SERVER['HTTP_ORIGIN'] : '';
   if (in_array($origin, self::$originarr)) {
      // 允許 $originarr 陣列內的 域名跨域訪問
      header('Access-Control-Allow-Origin:' . $origin);
      // 響應型別
      header('Access-Control-Allow-Methods:POST,GET');
      // 帶 cookie 的跨域訪問
      header('Access-Control-Allow-Credentials: true');
      // 響應頭設定
      header('Access-Control-Allow-Headers:x-requested-with,Content-Type,X-CSRF-Token');
   }
}