Comment puis-je passer une URL avec plusieurs paramètres dans une URL?

En gros, j'essaie de passer une URL comme ceci:

www.foobar.com/?first=1&second=12&third=5 

Dans une URL comme celle-ci:

 http://www.facebook.com/sharer.php?&t=FOOBAR&u=http://www.foobar.com/first=12&sec=25&position=2 

Il reconnaît uniquement le premier paramètre. J'ai le même problème avec LinkedIn et le partage de Twitter, il faut donc que ce soit quelque chose que je fais mal.

    Plutôt que html encoding votre paramètre URL, vous devez l' URL encode dans l' URL encode :

     http://www.facebook.com/sharer.php?&t=FOOBAR&u=http%3A%2F%2Fwww.foobar.com%2F%3Ffirst%3D12%26sec%3D25%26position%3D 

    Vous pouvez le faire facilement dans la plupart des langues – en javascript :

     var encodedParam = encodeURIComponent('www.foobar.com/?first=1&second=12&third=5'); // encodedParam = 'http%3A%2F%2Fwww.foobar.com%2F%3Ffirst%3D12%26sec%3D25%26position%3D' 

    (Il existe également des méthodes équivalentes dans d'autres langues)

    Vous manquez le ? Dans la deuxième URL (En outre, il devrait être codé par URL pour être %3F ).

    En outre, je crois que le reste & besoin d'être URL, pas codé en HTML. Change &second=12&third=5 to %26second=12%26third=5 et tout devrait fonctionner.

    Ce:

     &u=http://www.foobar.com/first=12&sec=25&position=2 

    devrait être:

     &u=http://www.foobar.com/%3Ffirst=12%26sec=25%26position=2 

    Dans votre exemple, les parties de votre URL passée ne sont pas encodées en URL (par exemple, le colon doit être% 3A, les barres obliques doivent être% 2F). Il semble que vous avez codé les paramètres sur votre URL de paramètre, mais pas l'URL du paramètre lui-même. Essayez de l'encoder aussi. Vous pouvez utiliser encodeURIComponent .

    Dans jQuery, vous pouvez utiliser:

     var myObject = {first:1, second=12, third=5}; jQuery.param(); 

    Doc: http://api.jquery.com/jquery.param/ La sortie: first = 1 & second = 12 & third = 5 Cela sera formé, quel que soit votre objet.

    Vous devez échapper au caractère &. Tournez votre

     & 

    dans

     & 

    Et vous devriez être bien.