Vytvořili jste někdy požadavek na data HTTP, abyste se pak setkali s červenou chybou „přístup k požadavku HTML byl zablokován zásadami cors“ ?
Pokud je váš web na stejné doméně jako server webové služby, není to žádný problém. To však neplatí v případě, že provádíte požadavek s křížovým původem. Přístup je odepřen z důvodu zabezpečení prohlížeče, které brání požadavkům HTTP na jinou doménu. Výsledek? Chyba zásad CORS.
Abyste mohli na svém serveru explicitně povolit určité požadavky cross-origin, podporuje nyní 4D protokol CORS. Přístup k datům pomocí požadavků s křížovým původem se právě stal jednodušším!
Protokol CORS zabraňuje tomu, aby webové stránky mohly zadávat požadavky do jiných domén, než je jejich vlastní. Někdy však můžete potřebovat povolit jiným stránkám, aby na váš server zadávaly požadavky na data HTTP. Naštěstí 4D poskytuje dva způsoby, jak definovat pravidla CORS a explicitně povolit určité požadavky s křížovým původem:
- prostřednictvím programování nebo
- prostřednictvím nastavení databáze.
správa cors prostřednictvím programování
Službu CORS můžete povolit pomocí dvou příkazů:
//CORS Domains Settings
$settings:=New collection
$settings .push(New object("host"; "127.0.0.1:8888"; "methods"; "get;put;post"))
$settings .push(New object("host"; "https://blog.4d.com/"; "methods"; "get;post"))
//enable CORS
WEB SET OPTION (Web CORS enabled;1)
//CORS Domains Settings
WEB SET OPTION (Web CORS settings;$settings)
//start web server to apply CORS settings
WEB START SERVER
$hostWS$setting:=WEB Server(Web host database server)
$setting :=New object
//Enable CORS
$setting .CORSEnabled:=True
//CORS Domains Settings
$setting .CORSSettings:=New collection
$setting .CORSSettings.push(New object("host"; "127.0.0.1:8888"; "methods"; "get;put;post"))
$setting .CORSSettings.push(New object("host"; "https://blog.4d.com/"; "methods"; "get;post"))
//start web server and apply CORS settings
$hostWS.
start( xml-ph-0
správa CORS prostřednictvím nastavení databáze
Nová nastavení jsou k dispozici na kartě Nastavení > Web > Možnosti (II):
Stačí přidat povolené názvy domén a dostupné metody. Při příštím spuštění serveru budou použity automaticky.