Кодировать URL в JavaScript?

Пытаемся добавить это к вашему pom

ОБНОВЛЕНО:

<dependency>
    <groupId>org.seleniumhq.webdriver</groupId>
    <artifactId>selenium-firefox-driver</artifactId>
    <version>2.XX.X</version>
</dependency>

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-server</artifactId>
    <version>2.XX.X</version>
</dependency> 
2346
задан ProgramFOX 31 October 2014 в 13:13
поделиться

4 ответа

Проверьте встроенную функцию encodeURIComponent (str) и encodeURI (str) .
В Вашем случае, это должно работать:

var myOtherUrl = 
       "http://example.com/index.html?url=" + encodeURIComponent(myUrl);
2686
ответ дан georgeawg 31 October 2014 в 13:13
поделиться

У Вас есть три опции:

  • escape() не закодирует: @*/+

  • encodeURI() не закодирует: ~!@#$&*()=:/,;?+'

  • encodeURIComponent() не закодирует: ~!*()'

Но в Вашем случае, если Вы хотите передать URL в a GET параметр другой страницы, необходимо использовать escape или encodeURIComponent, но нет encodeURI.

Посмотрите Лучшую практику вопроса о Переполнении стека: Escape или encodeURI / encodeURIComponent для дальнейшего обсуждения.

1486
ответ дан Community 31 October 2014 в 13:13
поделиться

Используйте fixedEncodeURIComponent функция для строгого исполнения RFC 3986 :

function fixedEncodeURIComponent(str) {
  return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
    return '%' + c.charCodeAt(0).toString(16);
  });
}
1
ответ дан 22 November 2019 в 19:55
поделиться

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

const queryParams = { param1: 'value1', param2: 'value2' }

и затем закодировать его использование:

const queryString = new URLSearchParams(queryParams).toString()

, как упомянуто в этом ответе: https://stackoverflow.com/a/53171438/7284582

0
ответ дан 22 November 2019 в 19:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: