Maison >développement back-end >Problème PHP >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 :
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!