Domaines et Ajax

griko Messages postés 401 Statut Membre -  
jiantox Messages postés 1159 Statut Membre -
Bonjour,
j'ai un problème avec ajax et les sous domaines et je voudrais savoir comment faire.

Nous avons le domaine principal : www.dom.com
le sous domaine : s1.dom.com

Et je voudrais effectuer une requête Ajax (Utilisation de load()) dont le fichier est hébergé sur www.

J'ai vu sur le net l'utilisation de "document.domain" mais impossible de le mettre en place.

Puis-je avoir plus d'explications svp ?

Merci d'avance



2 réponses

avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Salut.

Tu ne peux pas faire une requête XmlHttpRequest sur un fichier accessible via un domaine différent de celui de la page qui exécute le Javascript, pour des raisons de sécurité.

Tu peux essayer cette méthode encore très peu supportée :
https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/245581-lxmlhttprequest-cross-domain

Mais pour faire de l'AJAX, il y a d'autres méthodes que l'XmlHttpRequest.
Tu peux aussi insérer via Javascript une balise <script> ayant comme cible (src) un script (PHP) qui génère du Javascript qui sera exécuté (modifier une variable, afficher quelque-chose, etc).
https://openclassrooms.com/fr/courses/245710-ajax-et-lechange-de-donnees-en-javascript/244943-dynamic-script-loading
0
griko Messages postés 401 Statut Membre 10
 
Merci, j'ai trouvé ça :
soit
header("Access-Control-Allow-Origin: *");

soit
header("Access-Control-Allow-Origin: http://ssdom.monsite.fr");

c'est bien ou pas ?
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Oui, sur le fichier cible.
0
griko Messages postés 401 Statut Membre 10
 
ok c'est intégré et ça marche mais autre pb que j'avais pas vu avant, c'est de passé d'un sous domaine à un autre avec les même sessions, c'est possible ça ?

Je pense que oui mais comment ? Car mes tentative on échoué !
0
avion-f16 Messages postés 20367 Statut Contributeur 4 509
 
Les sessions utilisent un cookie pour stocker l'identifiant unique (PHPSESSID) de celle-ci.
Ainsi, le navigateur le transmet, et le serveur peut récupérer les informations.

Tu peux modifier les paramètres avec session_set_cookie_params()
0
griko Messages postés 401 Statut Membre 10
 
Oui je l'avais testé mais ça ne fonctionne pas, voici le code :
<?php 
session_set_cookie_params(3600, '/', '.monsite.com'); 
session_start(); 
?>

Je mettais se code sur toutes les pages où j'ouvre une session
Mais sans résultat
0
griko Messages postés 401 Statut Membre 10
 
e viens de faire les test sous différent navigateur, pas de problème pour Chrome et safari mais sous FFX, IE, Opéra ça ne fonctione pas :

header("Access-Control-Allow-Origin: http://ssdom.monsite.fr"); 


si je fais le test
header("Access-Control-Allow-Origin: *"); 
ça fonctionne mais pas top niveau sécurité quelqu'un sait pourquoi ça ne fonctionne pas ?
0
jiantox Messages postés 1159 Statut Membre 114
 
désolé d'arriver si tard mais bon...

dans le tutos il est bien écris "Domaine" donc :
header("Access-Control-Allow-Origin: monsite.fr"); devrai suffire ( en gros tu ne laisse que ton domaine ( et tout les sous domaines ) accèder à ton fichier
0