Я создал два проекта.Во-первых, это встроенное приложение, которое я тестирую на своем телефоне с помощью Expo.Второй - это стандартный сервер node.js, который работает на моем компьютере.
Я отфильтровал все запросы axios в собственном приложении реагирования через следующий apiCall, чтобы к нему был привязан полный URL (включая ip), и я мог обновить его в одном месте, когда мне было нужноto.
apiCall.js:
import axios from 'axios';
// made an apiCall function to connect to server
export default async ({ url, method, data }) => {
console.log('in apiCall');
try {
// const reqUrl = `http://192.168.1.9:5000${url}`; // home
const reqUrl = `https://172.16.21.223:5000${url}`; // coffee shop
let response = await axios({
url: reqUrl,
method,
data
});
return response.data;
} catch (err) {
console.log('inside catch of apiCall');
if (err.response && err.response.data) {
throw new Error(err.response.data.message)
}
throw new Error(err.message);
}
}
Вчера я запустил это, используя домашний URL.Сегодня я решил поработать в кофейне.И мой телефон и компьютер подключены к одному и тому же Wi-Fi (который требовал пароль для доступа к нему).Когда я попал сюда, я обновил свой URL до IP-адреса, который теперь отображает мой компьютер, но вызовы API не проходят.Я разместил консольный журнал в верхней части запроса в проекте сервера, и он не отображается.Проект клиента сообщает insuccessful post, error: [Error: Network Error]
.
Если это важно, я нашел оба ip-адреса одинаково, пройдя через Системные настройки и вытащив его из строки Wi-Fi is connected to *wifi name* and has the IP address *172.16.21.223*.
на странице Сеть.
Мне интересно, есть ли в кафе в кафе какая-то функция безопасности, которая препятствует доступу.Буду признателен за любую помощь, которая может быть предложена.(А если ничего не получится, я просто поработаю над этим дома снова!)