IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

FOSJsRoutingBundle : la route générée ne tient pas compte du port [4.x]


Sujet :

Symfony PHP

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut FOSJsRoutingBundle : la route générée ne tient pas compte du port
    Bonjour,

    Afin de me faciliter la tâche dans la génération des urls dans mes fichiers js, je me suis décidé à installer FOSJsRoutingBundle.

    Cependant, je rencontre un souci : les urls générées ne prennent pas en compte le port utilisé dans mon environnement de développement.

    En effet, je travaille via le port 8000. Ma page d'accueil se trouve via l'adresse http://127.0.0.1:8000/. Or, dans mon fichier js, lorsque je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Routing.generate('user.geolocation.session', [], true)
    , ça me donne http://localhost/user/geolocation/session au lieu de http://localhost:8000/user/geolocation/session. Voici d'ailleurs ce qui m'est affiché dans la console :

    Nom : Capture.JPG
Affichages : 612
Taille : 25,5 Ko

    Quelqu'un aurait une idée sur la manière de résoudre ce problème?

    Merci d'avance pour votre aide!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    bonjour,

    il faut définir un port dans le router ( config/packages/dev/routing.yaml) que fos router va utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #config/packages/dev/routing.yaml
    framework:
        router:
            strict_requirements: true
            http_port: 8000 # <-- ici tu défini le port
    et puis régénéré le fichier contenant les routes exposées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bin/console fos:js-routing:dump --format=json --target=public/js/fos_js_routes.json

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Un tout grand merci! Effectivement, l'url est maintenant correctement construite.

    Par contre, une erreur subsiste tout de même :

    Nom : Capture.JPG
Affichages : 605
Taille : 20,2 Ko

    Serait-ce dû au fait que l'url utilise localhost plutôt que 127.0.0.1?
    Images attachées Images attachées  

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    tu peux associer l'adresse IP 127.0.0.1 à localhost dans le fichier etc/hosts de ton OS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #hosts
    127.0.0.1 localhost

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Encore merci pour ton aide.

    J'ai modifié le fichier hosts se trouvant dans C:\Windows\System32\drivers\etc en dé-commentant la ligne suivante :

    127.0.0.1 localhost

    J'ai ensuite redémarré le pc.

    Cependant, cela ne change rien :

    Nom : Capture.JPG
Affichages : 597
Taille : 19,8 Ko

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    dans ce cas démarre le serveur interne de SF sur localhost:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    php bin/console server:run localhost:8000

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Vraiment, merci pour ton aide.

    J'ai donc lancé le serveur de la manière que tu m'as indiquée :

    Nom : Capture.JPG
Affichages : 628
Taille : 26,2 Ko

    Cependant, je me retrouve toujours avec la même erreur :

    Nom : Capture.JPG
Affichages : 592
Taille : 20,4 Ko
    Images attachées Images attachées  

  8. #8
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2012
    Messages
    631
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2012
    Messages : 631
    Points : 1 220
    Points
    1 220
    Par défaut
    là c'est le navigateur qui bloque l'envoie des requêtes http à destination de 127.0.0.1 qu'il considère comme extérieur à la transaction http en cours entre localhost et le client. Sur Firefox par exemple pas de blocage sur localhost ou sur 127.0.0.1. Sur chrome il y 'a des extensions qui contournent le blocage CORS(allow-cors-access-control ).

    Une autre solution consiste à dire à fos routing de ne pas générer l'url absolue(http://localhost:8000/user/geolocation/session) mais de générer juste des URI(/user/geolocation/session) ce qui revient à ne pas passer le 3ème paramètre(true) à la fonction generate
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Routing.generate('user.geolocation.session');
    //route avec paramètres
    //Routing.generate('my_route_to_expose', { id: 10 });
    Une toute autre solution consiste à mettre en place un vrai serveur web(apache ou nginx) où tu vas configurer un hôte virtuel qui va associer le nom domaine et l'adresse 127.0.0.1.

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Points : 356
    Points
    356
    Par défaut
    Un tout tout grand merci pour ton temps, ta patience et ton aide qui m'ont été fort utiles !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/09/2009, 14h03
  2. [MySQL] le mot de passe ne tient pas compte des majuscules
    Par jeanfi77 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 28/03/2007, 16h17
  3. Réponses: 9
    Dernier message: 18/03/2004, 12h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo