jquery добавить get параметр в url

Добавление параметра в URL с помощью JavaScript

в веб-приложении, которое использует вызовы AJAX, мне нужно отправить запрос, но добавить параметр в конец URL, например:

ищет функцию JavaScript, которая анализирует URL, глядя на каждый параметр, затем добавляет новый параметр или обновляет значение, если оно уже существует.

27 ответов:

базовая реализация, которую вам нужно будет адаптировать, будет выглядеть примерно так:

это примерно в два раза быстрее, чем регулярное выражение или поисковое решение, но это полностью зависит от длины строки запроса и индекса любого соответствия

медленный метод регулярных выражений, который я сравнивал с целью завершения (приблизительно + 150% медленнее)

спасибо всем за Ваш вклад. Я использовал annakata код и изменен, чтобы также включить случай, когда в url-адресе вообще нет строки запроса. Надеюсь, это поможет.

Это очень простое решение. Он не контролирует существование параметра, и он не изменяет существующее значение. Он добавляет ваш параметр в конец, так что вы можете получить последнее значение в вашем внутреннем коде.

вот значительно упрощенная версия, делающая компромиссы для удобочитаемости и меньшего количества строк кода вместо микро-оптимизированной производительности (и мы говорим о разнице в несколько миллисекунд, реалистично. из-за характера этого (работает на месте текущего документа), это, скорее всего, будет выполняться один раз на странице).

вы бы тогда использовали это так:

У меня есть «класс», который делает это, и вот он:

Я переопределил метод toString, поэтому нет необходимости вызывать QS::getQueryString, вы можете использовать QS:: toString или, как я сделал в примерах, просто полагаться на объект, который принуждается к строке.

и обратите внимание, что параметры должны быть закодированы перед добавлением в строку запроса.

если у вас есть строка с url, которую вы хотите украсить с помощью param, вы можете попробовать это:

Я бы также рекомендовал сделать encodeURI( paramvariable ) Если вы не зашит параметр, но он находится внутри paramvariable ; или если у вас есть смешные персонажи в нем.

Примечание: расположение.происхождение не работает в IE вот его исправить.

Uri и обработка строки запроса в javascript.

этот проект включает в себя отличную библиотеку регулярных выражений parseUri Стивена Левитана. Вы можете безопасно анализировать URL-адреса всех форм и размеров, какими бы недопустимыми или отвратительными они ни были.

Это простой способ добавить параметр запроса:

Это то, что я использую, когда дело доходит до некоторых основных дополнений url param или обновлений на стороне сервера, как узел.js.

следующая функция поможет вам добавлять, обновлять и удалять параметры в URL или из URL

Это была моя собственная попытка, но я буду использовать ответ аннакаты, поскольку он кажется намного чище:

кроме того, я нашел этот плагин jQuery из другого сообщения на stackoverflow, и если вам нужна большая гибкость, вы можете использовать это: http://plugins.jquery.com/project/query-object

Я думаю, что код будет (не проверял):

Я бы пошел с этой небольшая, но полная библиотека для обработки URL-адресов в js:

мне нравится ответ Мехмета Фатиха Йылдыза, даже он не ответил на весь вопрос.

в той же строке, как и его ответ, я использую этот код:

» Its не контролирует существование параметра, и он не изменяет существующее значение. Он добавляет ваш параметр в конец»

простое решение, если у вас уже есть тег или нет, и удаляет его автоматически, поэтому он не будет продолжать добавлять равное теги, удачи

метод регулярного выражения:

Если вы возитесь с URL-адресами в ссылках или где-то еще, возможно, Вам также придется учитывать хэш. Вот довольно простое для понимания решение. Вероятно, не самый быстрый так как он использует регулярное выражение. но в 99.999% случаев, разница действительно не имеет значения!

самое простое решение, которое я могу придумать, это этот метод, который вернет измененный URI. Я чувствую, что большинство из вас работают слишком усердно.

насколько я могу судить, ни один из приведенных выше ответов не касается случая, когда строка запроса содержит параметры, которые сами являются массивом и, следовательно, будут появляться более одного раза, например:

Источник

Манипулирование URL’ами в JavaScript

Из года в год, сталкиваюсь с одной и той же проблемой. Как добавить, изменить или удалить параметр к некоторому адресу в строковом виде. Быстро и грязно это можно делать с помощью, например, регулярных выражений или найти каке-то готовое решение. Зачастую также может потребоваться, к примеру, подменить путь в адресе или изменить протокол с HTTP на HTTPS и т.д.

В целом, это хочется делать просто и понятно. При этом хочется разумного компромиса. Я встречал некоторые библиотеки, которые дают мощный функционал, но при этом по объему — десятки килобайт JavaScript кода. Несколько десятков килобайт, чтобы, например, подменить параметр в QueryString? Эх…

В общем, написал свое решение, которое нашел удобным, в первую очередь, для себя. При решении также позаимствовал накопленный опыт товарища Jan Wolter по поводу парсинга QueryString в JavaScript (осторожно — английский). Это хоть несколько и увеличило объем кода, зато способно избавить от некоторых проблем.

Итак, мое решение можно забирать отсюда — github.com/Mikhus/jsurl. Лицензия — MIT, так что делайте все, что захотите. Минифицированный и пожатый gzip’ом код получился менее килобайта, что должно быть приемлимым. Зависимостей от каких-либо других библиотек не наблюдается. API — простой: сначала превращаем строку с адресом в объект Url и далее обращаемся с ним в зависимости от ситуации — либо как со строкой, либо как с объектом. Например, так:

Любые замечания, доработки, найденные баги, форки и другие кошерные вещи — приветствуются и благодарятся.

Источник

jQuery.get()

Загружает данные с сервера, используя HTTP GET запрос.

version added: 1.0 jQuery.get( url [, data] [, success(data, textStatus, jqXHR)] [, dataType] )

url
Тип: строка
Адрес, на который отправляется запрос.

data
Тип: объект или строка
Данные, отправляемые на сервер в виде объекта (ключ:значение) или строки.

success(data, textStatus, jqXHR)
Тип: функция
Функция, вызываемая при успешном завершении Ajax запроса.

dataType
Тип: строка
Тип данных, ожидаемых в качестве ответа от сервера. По умолчанию jQuery определит сам.

$.get() эквивалетна:

Функция обратного вызова success, принимает ответ от сервера, который может быть в виде XML, строки, JavaScript файла или объекта JSON, в зависимости от MIME типа ответа. Это значение так же помещается в статус ответа.

Начиная с версии 1.5, функция обратного вызова success принимает объект jqXHR (в ранних версиях объект XMLHttpRequest). В случае использования JSONP, значение второго и третьего параметры функции будет неопределённым (undefined), т.к. при кросс-доменных GET запросах, объект XHR не используется.

Данный код делает запрос к HTML файлу и выводит его содержимое.

Объект jqXHR

Заметка об устаревших методах

Функции обратного действия, введённые в jQuery 1.5 устарени в версии 1.8. Вместо jqXHR.success(), jqXHR.error() и jqXHR.complete() теперь следует использовать jqXHR.done(), jqXHR.fail() и jqXHR.always().

Примеры

Сделать запрос к test.php, игнорируя ответ:

Сделать запрос к test.php, передать данные, игнорировать ответ:

Передать массив данных на сервер, игнорируя ответ:

Обработать ответ от сервера (HTML или XML в зависимости от того, что пришло):

Сделать запрос к test.cgi, предать данные, обработать ответ (HTML или XML в зависимости от того, что пришло):

Источник

Как передать GET параметр

Всем привет! Столкнулся с задачей передачи GET параметра в ссылку. При переходе к пример с фейсбука, нужно подставить в ссылку другой номер телефона и другой её параметр. К примеру у меня есть ссылка с номером :jquery добавить get параметр в url. Смотреть фото jquery добавить get параметр в url. Смотреть картинку jquery добавить get параметр в url. Картинка про jquery добавить get параметр в url. Фото jquery добавить get параметр в url

Мне нужно как-то реализовать, что бы при переходе к примеру с того же фейсбука эта ссылка меняла свое значение на следующий:

Не судите строго, ещё учусь Буду благодарен за любую подробную информацию!

jquery добавить get параметр в url. Смотреть фото jquery добавить get параметр в url. Смотреть картинку jquery добавить get параметр в url. Картинка про jquery добавить get параметр в url. Фото jquery добавить get параметр в url

2 ответа 2

Если я правильно понял вопрос, то есть 2 кейса.

Переход по линке с Facebook

Думаю, что на facebook у вас есть некая группа, где вы указываете ссылки для перехода на Ваш сайт.

В этом случае, эту ссылку на фейсбуке можно сделать такой:

Далее, при загрузке уже вашего сайта, смотреть, что есть в url и в зависимости от этого менять содержимое контейнера:

И Ваша разметка поменяется на:

Что такое onLoad и как его кушать описано тут

Прямой переход

При прямом переходе в адресной строке не будет параметров. Событие onLoad все также вызовется, но ничего не сделает, как раз из-за отсутствия параметров.

Я просто привел пример, как это можно сделать, но это лишь один из возможных вариантов. К тому же, требующий более щепетильных проверок.

Если вы используете фреймворк, то это может помочь Вам выполнить подобную обработку

Я бы проверял, так же, значение параметра. Дело в том, что GET параметры может подставить в ссылку любой и, если вы будете просто проверять, если ли параметр tel или нет, то выводимое в Вашей ссылки значение может оказаться неожиданным =)

Кроме того, возможно решение через просмотр истории, если у Вас есть доступ к бэкенду. JavaScript не позволяет получать доступ к предыдущим URL, только к навигации.

Источник

Как отправить через jquery ajax, get параметры?

jquery добавить get параметр в url. Смотреть фото jquery добавить get параметр в url. Смотреть картинку jquery добавить get параметр в url. Картинка про jquery добавить get параметр в url. Фото jquery добавить get параметр в url

Мои коллеги говорят все верно, разберемся еще раз с запросом к серверу (к php-файлу):

jQuery.ajax() с GET-запросом можно заменить на jQuery.get()

То есть, грубо говоря, чтобы скрипт выполнился, нужно просто запустить (задействовать) нужный файл. Что и делает Ajax. Он просто открывает (как Вы в браузере) эту страницу, но вы этого не видите.
Причем, он делает это асинхронно (код будет работать и дальше, не ожидая ответа), для чего нужны колбеки (функции, которые выполняются после успешного/неуспешного запроса).

Как сделать запрос?

jquery добавить get параметр в url. Смотреть фото jquery добавить get параметр в url. Смотреть картинку jquery добавить get параметр в url. Картинка про jquery добавить get параметр в url. Фото jquery добавить get параметр в url

Чтобы, используя jQuery, отправить get параметры через ajax вы можете воспользоваться jQuery.ajax или jQuery.get.

А когда вы говорите «перезагрузить без перезагрузки», вы что имеете в виду?

jquery добавить get параметр в url. Смотреть фото jquery добавить get параметр в url. Смотреть картинку jquery добавить get параметр в url. Картинка про jquery добавить get параметр в url. Фото jquery добавить get параметр в url

jquery добавить get параметр в url. Смотреть фото jquery добавить get параметр в url. Смотреть картинку jquery добавить get параметр в url. Картинка про jquery добавить get параметр в url. Фото jquery добавить get параметр в url

Просто делаете запрос, а потом добавьте параметры в урл после запятой или напрямую задать параметром

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *