欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP解决跨域问题

程序员文章站 2022-12-23 20:55:07
在做项目的过程中经常需要跨域访问。这里主要介绍一下 PHP 中怎么解决跨域问题。 1、允许所有域名访问 2、允许单个域名访问 3、允许多个域名访问 在实际项目中最好指定能跨域访问的域名,增加安全性。可以写在一个公共类里面,封装一个方法调用。 ......

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