Как передать% в строке запроса URL?
Я пытаюсь передать строку через HTTP-запрос, который имеет один из символов как %
в строке запроса URL.
url = url + "?q=" + str + "&block=" + block; // str contains the '%' character
Но на странице ColdFusion, где я отправляю эту информацию, возвращается следующая ошибка:
Элемент Q undefined в URL.
Как я могу кодировать знак %
в URL?
Ответы
Ответ 1
Вы должны закодировать все значения, которые вы передаете, как параметры запроса, но URL-кодировка для% is %25
Обновить. Если вы создаете параметры запроса в javascript, вы, вероятно, захотите сделать:
url=url+"?q="+encodeURIComponent(str)+"&block="+encodeURIComponent(block)
(Обновлено с помощью очень полезного предложения ZeissS, чтобы использовать encodeURIComponent
вместо escape
. См. также http://xkr.us/articles/javascript/encode-compare/)
Ответ 2
Передайте свою строку через функцию encodeURI(...)
, чтобы избежать всех специальных символов не только%
Ответ 3
25%
http://www.w3schools.com/TAGS/ref_urlencode.asp
Ответ 4
URLEncodedFormat() в ColdFusion
Ответ 5
Мы можем использовать URLEncodedFormat() в ColdFusion, а также использовать приведенный ниже.
- encodeURI (...)
- encodeURIComponent
Это также помогает нам решить нашу проблему.