Кодированный URL-адрес не перенаправляется должным образом в угловых, как направить кодированный URL-адрес на правильный адрес? - PullRequest
0 голосов
/ 17 июня 2019

как перенаправить URL закодированных специальных символов на правильный адрес? в моем проекте закодирована маршрутизация URL на веб-страницу я создал маршрут примерно так

{путь: 'welcome /: id', компонент: WelcomeComponent},

На самом деле я передаю URL, как http://localhost/welcome%3Fid%3D45 но это не приемлет и он принимает только http://localhost/welcome?id=45

Ответы [ 3 ]

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

При определении маршрута, например { path: 'welcome/:id', component: WelcomeComponent }, вы обычно называете его в браузере следующим образом: /welcome/45

В указанном вами URL (http://localhost/welcome?id=45) вместо этого используется параметр запроса (id), не уверенный, будет ли он вообще отображаться на одном и том же. ? этого URL не должно кодироваться, так как это некоторый зарезервированный символ в URL для обозначения параметров URL.

Если система, которая генерирует эти URL-адреса, на самом деле дает вам такие некорректные URL-адреса (прочитайте из другого комментария, что эти URL-адреса не созданы вами), вы должны сначала вручную декодировать URL-адрес.

0 голосов
/ 17 июня 2019
{path: '**', component: 'NotFoundComponent'}

export class NotFoundComponent{
constructor(private router:Router,
          private route: ActivatedRoute,
          ) { 
            let url = this.router.url;
            url = url.replace(/%40/gi, '@')
            .replace(/%3A/gi, ':')
            .replace(/%24/gi, '$')
            .replace(/%2C/gi, ',')
            .replace(/%3B/gi, ';')
            .replace(/%2B/gi, '+')
            .replace(/%3D/gi, '=')
            .replace(/%3F/gi, '?')
            .replace(/%2F/gi, '/');
            if(url !== this.router.url){
                 this.router.navigate([url]);
              }
}
0 голосов
/ 17 июня 2019

может использовать encodeURIComponent для отправки параметра и decodeURIComponent, чтобы сделать его читаемым после получения

...