Как добавить параметр запроса в URL с ha sh? - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть строка URL: http:/some.other.com/#/app/.

Я хочу сделать ее строкой с определенным параметром запроса: http:/some.other.com/#/app/?my-param=whatever

Я пытался сделать это так:

function addQueryParam(url, key, value) {
  const newUrl = new URL(url)
  newUrl.searchParams.set(key, value)
  return newUrl.toString()
}

addQueryParam('http:/some.other.com/#/app/', 'my-param', 'whatever')

Я ожидал, что у меня будет следующий URL:

http:/some.other.com/#/app/?my-param=whatever

Но результат:

http://some.other.com/?my-param=whatever#/app/

Возможно, я что-то пропустил, но я думаю, много приложений такие как angular, vue, и я думаю, что для реакции используйте ha sh в середине строки URL. Так как же правильно добавить параметры запроса в этом случае?

1 Ответ

1 голос
/ 10 апреля 2020

Комментарии частично верны, эта информация не доходит до сервера. Однако, если вы просто делаете клиентскую логику c, то ничто не мешает вам. Ниже приведен пример того, как добиться того, что вы ищете.

function addHashQueryParam(url, key, value) {
  const existing = (url.lastIndexOf('?') > url.lastIndexOf('#')) ?
    url.substr(url.lastIndexOf('?') + 1) : '';
    
  const query = new URLSearchParams(existing);
  query.set(key, value)
  return `${url.replace(`?${existing}`, '')}?${query.toString()}`;
}

let url = 'http:/some.other.com/#/app/';

url = addHashQueryParam(url, 'my-param', 'whatever');
console.log(url)

url = addHashQueryParam(url, 'my-second-param', 'whomever');
console.log(url)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...