Activation de CORS pour Slim PHP Framework dans .htaccess
Pour activer le partage de ressources cross-origine (CORS) pour un service RESTful créé avec le Framework PHP SLIM, les modifications du fichier .htaccess sont couramment utilisées. Cependant, si les problèmes persistent après avoir apporté la modification recommandée dans .htaccess, une approche alternative peut être utilisée.
Utilisation des en-têtes PHP
Au lieu de définir des en-têtes CORS dans .htaccess , cela peut être fait directement dans le code PHP, notamment dans le fichier index.php. En ajoutant le code suivant au début du fichier, les en-têtes CORS seront définis pour chaque requête HTTP reçue par l'application :
<code class="php">// Allow from any origin if (isset($_SERVER['HTTP_ORIGIN'])) { // should do a check here to match $_SERVER['HTTP_ORIGIN'] to a // whitelist of safe domains header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}"); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Max-Age: 86400'); // cache for 1 day } // Access-Control headers are received during OPTIONS requests if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') { if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD'])) header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS"); if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS'])) header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}"); }</code>
Gestion des requêtes OPTIONS
Si vous utilisez le framework PHP SLIM, vous devrez peut-être également gérer les requêtes OPTIONS. Ajoutez la route suivante à l'objet $app pour garantir que les requêtes OPTIONS reçoivent une réponse HTTP 200 :
<code class="php">// return HTTP 200 for HTTP OPTIONS requests $app->map('/:x+', function($x) { http_response_code(200); })->via('OPTIONS');</code>
Ces modifications PHP offrent une alternative à la définition des en-têtes CORS dans .htaccess. En ajoutant les deux blocs de code au fichier index.php, vous pouvez activer CORS pour votre service SLIM PHP RESTful.
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!