Cross-origin resource sharing CORS ou JSONP

#1
Bonjour

je voulais savoir si quelqu'un aurait déjà mis en place une requête d'interrogation de données multi-domaines depuis un seul domaine (infocentre) qui implique l'emploi de diverses techniques comme CORS ou JSONP ou autre (en javascript / php) ?

merci d'avance
 

PH-Gabriel

Administrator
Membre du personnel
#2
Bonjour MarcMarin,

Du côté serveur, vous pouvez le faire avec votre .htaccess ou directement dans votre code PHP.

Avec votre .htaccess, vous pouvez le faire avec la directive "Header set". Voici un example:
Config Apache:
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "600"
Header always set Access-Control-Allow-Headers "*"
Sinon, il est aussi possible de le faire en PHP avec la fonction header().
 
#3
Merci Gabriel, voilà une réponse concrète qui marche.

en mode PHP pour filtrer un peu plus certains domaines, j'ai vu qu'on peux faire cela aussi:

$server_referer = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
if ($server_referer != '' && $server_referer != $_SERVER['SERVER_NAME'])
{
if (.. ici rajouter un test si on veut autoriser ou non le dns)
{
header('Access-Control-Allow-Origin: https://'.$server_referer);
}
}

Attention au fait que les scripts cron n'utilisent pas le protocole http et donc les variables globales comme $server_referer sont non définies.

A ce propos j'aimerai bien savoir s'il est possible de vérifier qu'un cron provient bien du même dns.
 

PH-Gabriel

Administrator
Membre du personnel
#4
Bonjour,
Je ne suis pas certain de comprendre votre question. Les crons sont lancés depuis le serveur. Il n'y a pas de lien avec les DNS.
 
Haut