Maison >développement back-end >Problème PHP >Comment résoudre les problèmes inter-domaines en php

Comment résoudre les problèmes inter-domaines en php

王林
王林avant
2021-02-12 09:49:363408parcourir

Comment résoudre les problèmes inter-domaines en php

Qu'est-ce que le cross-domain ?

Cross-domain signifie que le navigateur ne peut pas exécuter de scripts provenant d'autres sites Web. Cela est dû à la politique de même origine du navigateur, une restriction de sécurité imposée par le navigateur.

La soi-disant même origine signifie que le nom de domaine, le protocole et le port sont les mêmes.

1. Autoriser tous les noms de domaine à accéder à

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

2. Autoriser un seul nom de domaine à accéder à

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

3. Autoriser plusieurs noms de domaine à accéder à

Dans les projets réels, il est préférable de spécifier un nom de domaine accessible à travers les domaines pour augmenter la sécurité. Il peut être écrit dans une classe publique pour encapsuler un appel de méthode.

// 设置能访问的域名
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');
   }
}

Recommandations associées :

Tutoriel php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer