Приложение угловой песочницы читает URL браузера - PullRequest
0 голосов
/ 12 февраля 2019

В настоящее время я работаю над чтением URL-адреса из браузера и назначаю его как глобальный URL-адрес, вместо жесткого кодирования base_url. Мне нужно, чтобы он считывался из браузера и исправлялся для всех служб с помощью URL-адреса.Я пытался сделать это, и этот код работает, но проблема заключается в том, что после перезагрузки экрана все API-интерфейсы выйдут из строя.

CODE

 setTimeout(() => {
     if (environment.production) {
         base_url = window.location.origin + '/APPLICATION/resources/';
     }else {
        base_url = 'http://106.51.66.219:1234/APPLICATION/resources/' ;
     }
 }, 1000);

естьлюбой лучший способ установить base_url, и он работает безупречно даже после нажатия на кнопку обновления.

Ответы [ 3 ]

0 голосов
/ 20 февраля 2019

Две вещи:

  1. Никогда не выставляйте такие конфигурации клиенту.В рабочей версии люди могут видеть ваш dev endpoint.Попробуйте как можно больше перенести такие конфигурации в вашу систему сборки / комплектации.

  2. Хорошая идея - определить все такие константы в файле service или constants.ts.Как указано @ plalx

0 голосов
/ 20 февраля 2019

Вы можете использовать стандартный JS здесь:

window.location.href

Но вы скорее хотите использовать угловой маршрут для этого:

constructor(route: ActivatedRoute) {
    const url: Observable<string> = route.url.map(segments => segments.join(''));
    url.subscribe((url) => console.log(url));
}

См .: https://angular.io/api/router/ActivatedRoute

0 голосов
/ 12 февраля 2019

Поскольку вы используете angularjs, вы можете попробовать службу $ location для получения URL-адреса из браузера, как показано ниже, и это будет работать также и при перезагрузке страницы

setTimeout(() => {
 if (environment.production) {
     base_url = $location.protocol()+'//'+$location.host() + '/APPLICATION/resources/';
 }else {
    base_url = 'http://106.51.66.219:1234/APPLICATION/resources/' ;
 }
}, 1000);

и если в работе есть порт в URL, то естьнаписать условие для подключения к порту ($ location.port ()) в URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...