Из моего 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/')