Подтвердить что ты не робот

Как передать URL с несколькими параметрами в URL?

В основном я пытаюсь передать такой URL:

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

в URL-адрес, подобный этому:

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

Он распознает только первый параметр. У меня такая же проблема с подключением LinkedIn и Twitter, так что это должно быть то, что я делаю неправильно.

4b9b3361

Ответ 1

Вместо html encoding вашего параметра URL вам нужно URL encode it:

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

Вы можете сделать это легко на большинстве языков - в 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'

(есть эквивалентные методы и на других языках)

Ответ 2

Во втором URL-адресе отсутствует ? (Кроме того, он должен быть закодирован по URL-адресу как %3F).

Кроме того, я считаю, что оставшийся & должен быть URL, а не HTML-кодированным. Измените &second=12&third=5 на %26second=12%26third=5, и все должно работать.

Это:

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

должен быть:

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

Ответ 3

В jQuery вы можете использовать:

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

Doc: http://api.jquery.com/jquery.param/ Выход: первый = 1 & второй = 12 & третий = 5 Это отформатирует его, независимо от вашего объекта.

Ответ 4

В вашем примере части вашего переданного URL не кодируются URL (например, двоеточие должно быть% 3A, передние косые черты должны быть% 2F). Похоже, вы закодировали параметры по URL-адресу параметра, но не по самому URL-адресу параметра. Попробуйте также кодировать его. Вы можете использовать encodeURIComponent.

Ответ 5

Вам нужно избежать символа и. Поверните

&

в

&

и вам должно быть хорошо.