PHP解决跨域问题

180it 2020-11-05 PM 1520℃ 0条

在做项目的过程中经常需要跨域访问。这里主要介绍一下 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');
       }
    }

支付宝打赏支付宝打赏 微信打赏微信打赏

如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!

标签: none

PHP解决跨域问题