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

王林
リリース: 2023-03-08 06:20:01
転載
3391 人が閲覧しました

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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!