Кодировать строку для отправки с HTTP-запросом? - PullRequest
0 голосов
/ 24 февраля 2011

Я нахожусь на Javascript / Node.js и когда я делаю HTTP-запрос с этим параметром запроса:

?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f"

Я получаю сообщение об ошибке, потому что после всего:

?key="https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-

Интересно, как я могу закодировать эту строку, чтобы она не отсекала ее?

Ответы [ 3 ]

8 голосов
/ 24 февраля 2011

Я предполагаю, что хеш (#) в конце вашего URL на самом деле является частью аргумента запроса. Проблема в том, что Node.js рассматривает его как хеш вашего общего URL, который не играет роли в HTTP-запросах. Таким образом, вам нужно правильно кодировать строку запроса.

Структурная функция API, такая как querystring.stringify, вероятно, лучше всего.

var query = querystring.stringify({
  key: '"https://me.yahoo.com/a/xt4hQ7QYssA8hymJKv8MeVQQKGhq_1jwvas-#a6e6f"'
});
1 голос
/ 24 февраля 2011

urlencode it.

в JavaScript: escape(string)

0 голосов
/ 09 июня 2019

Используйте encodeURIComponent, как упомянул Хаски в своем комментарии.

...