前置工作
我们这里前后端分离以登录为例子,前置工作搭建好环境。
在写完表单后,我们要写到表单提交真正访问到后台的时候就不能使用Ajax了,这里要使用Axios代替Ajax。Axios封装了Ajax,使用起来也是很方便的。
注意因为是前后端分离的项目,所以要把前后端的端口设置的不同,避免冲突!!!
前端部分代码
<!-- 表单 -->
<el-form ref="loginFormRef" :model="loginForm" class="login_form" label-width="90" :rules="loginRules">
<el-form-item prop="username">
<el-input v-model="loginForm.username" prefix-icon="iconfont icondenglu"></el-input>
</el-form-item>
<el-form-item prop="password">
<el-input type="password" v-model="loginForm.password" prefix-icon="iconfont iconmima"></el-input>
</el-form-item>
<el-form-item class="btns">
<el-button type="primary" @click="login()">提交</el-button>
<el-button type="info" @click="resetLoginForm()">重置</el-button>
</el-form-item>
</el-form>
后端代码
@RestController
public class LoginController {
@RequestMapping("/login")
public String login(@RequestBody User user) {
System.out.println("user:" + user);
return "ok";
}
}
引入Axios
安装命令 npm install --save axios vue-axios
main.js中引入Axios
// 导入
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios, axios)
// 挂载axios
Vue.prototype.$http = axios
// 设置访问根路径
axios.defaults.baseURL = "http://localhost:9000"
login方法
methods:{
resetLoginForm(){
this.$refs.loginFormRef.resetFields();
},
login(){
this.$refs.loginFormRef.validate(async valid => {
if( !valid ) return;
const{data:res} = await this.$http.post("login",this.loginForm)
if( res == "ok" ){
this.$message.success("操作成功")
this.$router.push({path:"/home"});
}else{
this.$message.error("操作失败")
}
})
}
}
后台成功接收到数据。