CORS v PHP

Mobilní aplikace používá pro komunikaci prostředky webového prohlížeče, proto se na ni vztahují stejná pravidla - tedy i CORS. Na serveru je třeba nastavit odpovídající hlavičky a reakce na request OPTIONS.


Kód:

if (isset($_SERVER["HTTP_ORIGIN"])) {
  header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
}

header("Access-Control-Allow-Credentials: true");

if (isset($_SERVER["HTTP_ACCESS_CONTROL_REQUEST_HEADERS"])) {
  header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
}

if (isset($_SERVER["HTTP_ACCESS_CONTROL_REQUEST_METHOD"])) {
  header("Access-Control-Allow-Methods: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']}");
}


Jak ověřit správnost:

curl -si -H "Origin: 111" -H "Access-Control-Request-Headers: 222" -H "Access-Control-Request-Method: 333" http://xxxxxx

Hlavičky by měly obsahovat:

Access-Control-Allow-Origin: 111
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: 222
Access-Control-Allow-Methods: 333