Heim >Backend-Entwicklung >PHP-Problem >So stellen Sie PHP domänenübergreifend ein
Die Möglichkeit, PHP domänenübergreifend einzustellen, besteht darin, die Anweisung [header("Access-Control-Allow-Origin: *");] direkt zum Header der PHP-Datei hinzuzufügen, sodass alle Adressen zugelassen werden können auf domänenübergreifende Anfragen.
Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP 7.3, Thinkpad T480-Computer.
Es gibt drei Möglichkeiten, den domänenübergreifenden Zugriff in den PHP-Einstellungen zuzulassen. Die spezifischen Methoden sind wie folgt:
Methode eins:
header("Access-Control-Allow-Origin: *");//允许所有地址跨域请求
Methode zwei:
header("Access-Control-Allow-Origin: http://localhost:8080");//指定某个地址可以跨域请求,这里只能指定一个
Methode drei: Wenn Sie domänenübergreifenden Zugriff zulassen möchten Anfragen von mehreren Adressen können Sie so schreiben:
$origin = ['http://localhost:8080','http://localhost:8081']; $AllowOrigin = 'http://localhost:8080'; if(in_array($_SERVER["HTTP_ORIGIN"],$origin)) { $AllowOrigin = $_SERVER["HTTP_ORIGIN"]; } header("Access-Control-Allow-Origin: ".$AllowOrigin );
Legen Sie die erlaubten Anfragemethoden fest, Sie können * verwenden, um alle anzugeben, header("Access-Control-Allow-Methods: POST");
Wenn die Anfrage erlaubt ist Um Cookies zu übertragen, kann * derzeit nicht in der Ursprungskonfiguration und im Front-End verwendet werden. Es scheint, dass Sie es auch so konfigurieren müssen, dass die Anforderung den Cookie-Header('Access-Control-Allow-Credentials:true'); trägt.
Anforderungsheader einrichten, die domänenübergreifende Anforderungen ermöglichen, werden normalerweise zum Anforderungsheader hinzugefügt, sodass der Server angeben muss, welche Anforderungsheader zulässig sind. * können hier nicht verwendet werden. header('Access-Control-Allow-Headers:token');
Verwandte Empfehlungen: php-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo stellen Sie PHP domänenübergreifend ein. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!