从同一网络上的设备访问REST API时出现问题

时间:2019-03-14 11:59:27

标签: node.js vuejs2

我在我的PC和vuejs Web应用程序发送请求中运行了REST API。 当我在localhost中尝试该应用程序时,发现完美。 我可以访问首页('/')并使用网络应用程序,它通过API('/ something')发送其他请求

但是,我需要从移动设备上尝试应用程序,因此我需要同时连接同一网络并从IP访问本地主机。

我可以访问家庭(IP:端口),并且该应用程序可以通过我的手机回复。 我也可以访问其他端点(IP:端口/某物)。 通常只有应用程序使用API​​端点。 (对于用户直接访问无用)

问题是:我在移动设备上显示主页,但在开始时,Web应用程序将请求发送到端点。但是服务器对状态的响应为0((

我尝试与其他PC相同...当我从其他设备尝试应用时,该应用无法使用我的API。

连接到家:(server.js(API))

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

用户访问家庭时(安装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。当我尝试直接访问该端点时,发现它!但是我仍然需要在主页上...

2 个答案:

答案 0 :(得分:0)

某些情况下会产生此状态代码:

非法的跨源请求(请参阅CORS)

防火墙阻止或过滤

请求本身已被代码取消

我敢打赌这是CORS或防火墙问题。

答案 1 :(得分:0)

好,我发现了问题... xD我从其他设备通过服务器IP访问Web应用程序,但请求中使用的变量“ this.website”始终为“ localhost”!所以我将其替换为当前URL ...