Domaines et Ajax

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



--
Webmaster de : Cinéco.fr | Le site Cinéphile!

2 réponses

  1. 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
    1. 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
    2. Oui, sur le fichier cible.
      0
    3. 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
    4. 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
    5. 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
  2. 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
    1. 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