一、说明
1、vue里定义的Router是前端路由,而axios属于ajax是请求后端接口用的。故,axios无法用来请求页面,而可以用来请求后端接口。
详情参考 axios文档,http://www.axios-js.com/zh-cn/docs/
二、实现
1、引入vue以及axios
<!-- 引入vue.js -->
<script src="js/vue.js"></script>
<!-- 引入axios.js -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
2、实现脚本控制按钮
<script>
new Vue({
el:'#app',
template:`
<div>
<button @click="login">发送</button>
</div>
`,
data(){
return{
}
},
methods:{
login:function() {
axios.post('/login', { //get|post可选,用对象{ }传递数据,如果不传递数据,可缺省{ }。get方式参数也可以拼接在url中
username: 'chy', //通常是获取表单数据,$('#xxx').val
password: 'abcd'
}).then(function (response) { //处理后台返回的数据。
console.log("test:::::");
console.log(response); //response是后台返回的整个响应
console.log("test!!!");
console.log(response.data); //.data才是后台返回的数据
}).catch(function (error) { //发生错误时的处理
console.log(error);
});
}
}
})
</script>
3、后端接受请求
@RequestMapping("/login")
public void login() throws IOException {
String command = "cmd.exe /c cd"
+ " E:\\projects\\python\\smarthome\\venv\\Include "
+ "&& start python main.py";
Process p = Runtime.getRuntime().exec(command);
}
附:完整代码
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<!-- 引入vue.js -->
<script src="js/vue.js"></script>
<!-- 引入axios.js -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<body>
<div id="app"></div>
<script>
new Vue({
el:'#app',
template:`
<div>
<button @click="login">发送</button>
</div>
`,
data(){
return{
}
},
methods:{
login:function() {
axios.post('/login', { //get|post可选,用对象{ }传递数据,如果不传递数据,可缺省{ }。get方式参数也可以拼接在url中
username: 'chy', //通常是获取表单数据,$('#xxx').val
password: 'abcd'
}).then(function (response) { //处理后台返回的数据。
console.log("test:::::");
console.log(response); //response是后台返回的整个响应
console.log("test!!!");
console.log(response.data); //.data才是后台返回的数据
}).catch(function (error) { //发生错误时的处理
console.log(error);
});
}
}
})
</script>
</body>
</html>