Я хочу скрыть параметры запроса от URL.Как я могу достичь того же? - PullRequest
0 голосов
/ 30 апреля 2019

Я работаю в приложении, где я перечисляю список кандидатов.Когда я нажимаю на имя кандидата, он должен открыть новую вкладку с информацией о кандидате.

Я сохраняю соответствующий кандидат в локальном хранилище и открываю окно на новой вкладке, где я получаю идентификатор кандидата излокальное хранение и получение данных.

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

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

Может кто-нибудь подсказать мне, как это сделать или какую-то другую альтернативу?

1 Ответ

0 голосов
/ 30 апреля 2019

Вы можете использовать интерфейс FormData

public getCondidate(id: string): Observable<Condidate> {
    const formData: FormData = new FormData();
    formData.append('condidateId', id);
    return this.http.post<Condidate>(%server_Url%, formData);
}

Команда Use может получить идентификатор в бэкэнде, запросив параметр "condidateId" в запросе. Таким образом, параметры запроса будут содержать его condidateId, который не будет отображаться в URL-адресе, если вы не используете инструменты разработчика и не проверяете запрос в разделе «Сеть».

Не сохраняйте condidateId в localStorage, если у вас нет логина или механизма аутентификации. Когда вы перечисляете все conididates после извлечения их из БД, метод, который вы вызываете onClick, чтобы открыть страницу с соответствующими данными, должен вызываться с соответствующим идентификатором. Например

<div
  <ul>
    <li *ngFor="condidate of condidates">
      <button (click)="getCondidate(condidate.id)">Get Condidate</button>
    </li>
  </ul>
</div>

Метод getCondidate (condidate.id) должен вызывать предыдущий код.

Надеюсь, это поможет.

...