Vue. js ax ios get Dynami c IP сервера - PullRequest
0 голосов
/ 15 февраля 2020

Из моего Vue. js PWA Я хочу получить доступ к локальному API (сервер работает в контейнере Docker) в моей сети. Этот сервер работает на том же компьютере, где я разрабатываю мое приложение Vue (где я вызываю yarn serve). Если я получаю доступ к API с моего компьютера, все в порядке. Я хочу, чтобы он также работал на моем телефоне .

Текущий подход

Я хочу, чтобы мой PWA отправил запрос на мой локальный сервер, чтобы получить JSON ответ с данными. Что я делаю так:

methods: {
  requestNext() {
    axios
      .get('http://0.0.0.0:8081/')  //   'http://172.16.0.xx:8081/'
      .then(response => (this.apiData = response.data))
      .catch(error => console.log(error))
  }
}

Если я перехожу на http://localhost:8080/ для доступа к своему приложению и запускаю функцию requestNext(), все работает как положено. Как и ожидалось, http://0.0.0.0:8081/ не работает на моем телефоне. Очевидно, поскольку мой API-сервер не работает на моем телефоне.

Чтобы мое приложение Vue работало на моем компьютере и телефоне, я могу изменить IP-адрес с 0.0.0.0:8081 на 172.16.0.88:8081. И это работает.

Проблема

При настройке IP на локальную сеть моего компьютера IP работает, при каждом перезапуске этот локальный IP меняется. Это потребовало бы, чтобы я вручную изменял код после каждого перезапуска (который также не Git дружественный или если кто-то еще копирует установку).

Вопрос

Как мне получить сеть IP-адрес компьютера, на котором размещено приложение Vue (компьютер, на котором выполняется yarn serve), по коду?

Что позволяет мне делать что-то вроде:

axios
  .get('http://' + automaticNetworkIp + ':8081/')
...