axios发布请求和JQuery $ .ajax请求都在移动设备上返回403禁止的错误

时间:2018-11-30 06:26:17

标签: jquery ajax vuejs2 axios

我正在使用Vue开发应用程序,并且正在使用axios进行HTTP rest-api调用。

在代码下方找到

<!DOCTYPE html>
<html>
<head>
    <title>Vue Axios Example</title>    
</head>
<body>
<div id="app">
  <h1>App</h1>
  <p>From Axios: {{response}}</p>      
</div>

<script src="vue.min.js"></script>
<script src="axios.min.js"></script>
<script>
var app = new Vue({
      el: '#app',
      data: {        
          users: [],
          response : ""
      }, 
      methods:{
        init:function() {
          var vm = this;
          axios(
              { 
                method : "POST", 
                "url" : "http://localhost:3000/", 
                "data" : myJSONText, 
                "headers" : 
                { 
                  "content-type": "application/json; charset=UTF-8;" 
                }
              }
          )
          .then(function (result) {          
              //alert(result.data);
              stringData = result.data;
              vm.response = JSON.stringify(result.data);
              //$('.dataP').text(JSON.stringify(stringData));
          })
          .catch(function (error) {        
            alert(error);
          })
          .then(function () {

          });
        }
      }
    })
</script>
</body>
</html>

这在Web浏览器中工作正常。

找到以下屏幕截图。

enter image description here

但是它不能在移动设备上运行(Lenovo A6600-android 4.4.2),收到403-禁止的错误。

请找到以下移动屏幕截图

enter image description here

为了进一步检查,我也使用了JQuery $ .ajax发布请求。

下面是Jquery ajax代码

$.ajax({
   type: "POST",
   url: "http://localhost:3000/",          
   data: myJSONText,              
   contentType: "application/json;charset=UTF-8",        
   dataType:"json",
   success: function( data ) {          
   stringData = data;
   console.log(stringData);
   $('.dataP').append(JSON.stringify(stringData));
   },
   error: function( error ) {
   console.log( error );
   alert("jq: "+JSON.stringify(error));          
   }
})

,但这也会返回相同的403错误。

我尝试使用IP /主机名代替本地主机,并在同一网络中连接设备。这也给出了相同的错误。

任何解决方案将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

您的网址是localhost:3000。如果将此JS加载到您的移动浏览器中,它还将尝试连接到本地localhost(现在是电话),而您的服务器显然没有运行。
将其更改为实际的服务器IP /主机名,就可以了。