ホームページ  >  記事  >  バックエンド開発  >  PHPでクロスドメインの問題を解決する方法

PHPでクロスドメインの問題を解決する方法

王林
王林転載
2021-02-12 09:49:363387ブラウズ

PHPでクロスドメインの問題を解決する方法

クロスドメインとは何ですか?

クロスドメインとは、ブラウザが他の Web サイトからのスクリプトを実行できないことを意味します。これは、ブラウザの同一生成元ポリシー、つまりブラウザによって課されるセキュリティ制限によって発生します。

いわゆる同一オリジンとは、ドメイン名、プロトコル、ポートが同じであることを意味します。

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');
   }
}

関連する推奨事項: php チュートリアル

以上がPHPでクロスドメインの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。