需要导入Axios插件https://www.axios-http.cn/docs/intro
npm install axios
Vue部分
首先在/src/main.js里配置
import Axios from 'axios';
Axios.defaults.baseURL='/api'
Axios.defaults.headers.post['Content-Type']='application/json'
第二步在/config/index.js下为刚刚设置的baseURL=‘默认路径’即’/api‘进行跨区改造
proxyTable: {
'/api': {
target:'http://localhost:8000',
changeOrigin:true,
pathRewrite:{
'^/api': ''
}
}
}
}
Vue组件中的调用
<template>
<button @click="Click">点我</button>
</template>
<script>
import axios from "axios";
export default {
name: "table",
methods: {
getMsg:function (){
axios.get('/getMsg').then((res) =>{
this.msg=res.data
console.log(res.status)
}).catch(function (err){
console.log(err)
})
}
Click() {
console.log(this.msg);
},
},
data() {
return {
msg:''
}
},
mounted() {
this.getMsg();
}
</script>
Spring Boot部分
首先是配置SpringBoot项目运行的端口号,和Vue那边配置的跨域端口号一样
server:
port: 8000
然后是controller
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class testController {
@RequestMapping("/getMsg")
public String getMsg(){
return "Hello,Vue SpringBoot Connect By Axios";
}
}
最后把两个项目分别打开 可以看到控制台输出了200,说明跨域请求成功 然后点击按钮输出了spring boot 中返回的那段话 实际应用中后端发送数据要加上Json格式转化,前端处理数据时要加上Json格式数据解析
|