Bonjour,
je voudrais savoir comment faire un lien relatif dans une fichier js qui sera stocké dans le webroot. car quand je deplace mon projet dans un sous repertoire par exemple quand je passe de http://localhost a http://localhost/toto/

url: "/cards/pingip",

methode complete

    var ip = $('#Server').val();
    $.ajax({
      method: "POST",
      url: "/cards/pingip",
      data: { ip: ip}
    }).done(function( msg ) {
        if(msg) {
            $('#server-status').removeClass('label-default').addClass('label-success').html('OK');
        } else {
            $('#server-status').removeClass('label-default').addClass('label-danger').html('Timeout');
        }
    });

j'ai fait ceci mais ca ne marche pas

var ip = $('#CardServerIp').val();
    $.ajax({
      method: "POST",
      url: "<?php echo Router::url(array('controller'=>'cards','action'=>'pingip'));?>",
      data: { ip: ip}

merci d'avance

5 réponses


connected
Réponse acceptée

Hello,

moi je fais comme ceci dans le header de mon layout

<script type="text/javascript">
      var root = <?= \Cake\Routing\Router::url('/'); ?>
    </script>

C'est la syntaxe pour Cake 3, à adapter pour Cake 2.
Puis dans mes fichiers js je fais

$.ajax({
      method: "POST",
      url: root + '/cards/pingip',
      data: { ip: ip}
     });

En espérant que ça réponde à tes besoins :)

sylvain
Auteur

Une idée ?

moi perso pour réglé le problème je definis

<head>
  <base href="http://www.mon-url.com/mon-dossier/">

et je récupère le contenu du href dans mon js et comme mr connected je le place dans window.root histoire d'utilisé partout partout

Salut essaies ça...

$.ajax({
      method: "POST",
      url:  'http://' + document.domain + '/cards/pingip',
      data: { ip: ip}
});
sylvain
Auteur

Merci a tous.