我正在使用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浏览器中工作正常。
找到以下屏幕截图。
但是它不能在移动设备上运行(Lenovo A6600-android 4.4.2),收到403-禁止的错误。
请找到以下移动屏幕截图
为了进一步检查,我也使用了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 /主机名代替本地主机,并在同一网络中连接设备。这也给出了相同的错误。
任何解决方案将不胜感激。
谢谢。
答案 0 :(得分:0)
您的网址是localhost:3000
。如果将此JS加载到您的移动浏览器中,它还将尝试连接到本地localhost(现在是电话),而您的服务器显然没有运行。
将其更改为实际的服务器IP /主机名,就可以了。