Проблема с доступом к REST API с устройств в той же сети

#node.js #vuejs2

#node.js #vuejs2

Вопрос:

На моем компьютере запущен REST API, и веб-приложение vuejs отправляет запрос. Когда я пробую приложение на localhost, оно отлично найдено. Я могу получить доступ к home (‘/’) и с помощью веб-приложения отправлять другие запросы в API (‘/ something’)

Но мне нужно попробовать приложение со своего мобильного, поэтому я подключаюсь к одной сети и получаю доступ к localhost с IP.

Я могу получить доступ к домашнему (IP: порт), и приложение отвечает с моего мобильного. Я также могу получить доступ к другим конечным точкам (IP: порт / что-то еще). Обычно только приложение использует конечные точки API. (Пользователю бесполезно обращаться напрямую)

Проблема в том, что я захожу на домашнюю страницу со своего мобильного, но при запуске веб-приложение отправляет запрос на конечную точку. Но сервер отвечает 0 на статус: (

Я пробую с другого компьютера и то же самое… когда я пробую свое приложение с других устройств, приложение не может использовать мой API.

Связь с домом: (server.js (API))

 MyRouter.route('/')
.all(function(req, res){
    res.render('home.ejs');
});
  

Запрос, отправленный при доступе пользователя к home (при смонтированном Vue): (app.js (Приложение))

 mounted () {
   this.$http.get(this.website   '/connexion' ).then(response => {
      //succes (I need to get some infos from API)
   }, response => {
      //error
   }
  

Конечная точка: (server.js )

 MyRouter.route('/connexion')
.get(function(req,res){ 
    res.json({foo: "bar"}); //some infos
})
  

С локального хостинга я могу получить информацию в формате json, но с другого устройства я могу получить доступ к домашней странице, но запрос к конечной точке возвращает статус запроса = 0. Когда я пытаюсь получить доступ непосредственно к конечной точке, он найден! Но мне нужно все еще на домашней странице…

Комментарии:

1. Когда вы загружаете веб-страницу, отправляются ли запросы с веб-страницы на localhost?

2. Да, я печатаю это. веб-страница ‘ это относится к localhost

Ответ №1:

Некоторые ситуации, которые приводят к этому коду состояния:

Незаконный запрос из разных источников (см. CORS)

Блокировка брандмауэром или фильтрация

Сам запрос был отменен в коде

Я бы поспорил, что это проблема CORS или брандмауэра.

Комментарии:

1. Используемое соединение — это соединение моего телефона, я посмотрю на него

Ответ №2:

Хорошо, я нахожу проблему … xD С другого устройства я получаю доступ к веб-приложению с IP-адреса сервера, но переменная ‘this.веб-сайт’, используемый в запросах, всегда был «localhost»! Поэтому я заменил это на текущий URL…