第三次课,vue 使用axios 调用后端接口
config-index:配置后端地址
proxyTable: { "/v": { target: url, changeOrigin: true, pathRewrite: { "^/v": "/v" } } },下载依赖
npm install --save axios
cnpm install axios --savesrc-main : 因为vue不能直接use axios 所以 注册axios为vue的属性 $http
import axios from 'axios' Vue.prototype.$http= axios页面方法调用
methods: { go() { this.$http({ method: "get", url: "http://127.0.0.1:8520/v/use", params: { msg: "this.msg" } }); } }后端数据支持
package hc.cloud.controller; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import java.util.Map; /** * Created by Administrator on 2019/5/22 0022. */ @Slf4j @RestController @RequestMapping("use") public class goIp { @GetMapping public Map<String, String> user(@RequestParam Map<String, String> map) { log.info(map.get("msg").toString()); map.put("data","Welcome to king cloud!"); return map; } }
改良:加入接收及报错的方法
methods: { go() { this.$http({ method: "get", url: "/v/use", params: { msg: "this.msg to you!" } }) .then(response => { this.msg = response.data.data; console.log(response); }) .catch(error => { console.log(error) }) } }then: 接收后端返回数据
response.data:即后端返回数据
response.data.data:返回数据的data属性
为了提高复用性,即多个地方使用同一个接口
api接口
import axios from 'axios' export function send(i) { return axios({ method: "delete", url: "/v/use", params: { msg: i } }) }页面
import { send } from "../api/use.js"; go() { this.msg = "this.msg to you!"; send(this.msg) .then(response => { this.msg = response.data.data; console.log(response); }) .catch(error => { console.log(error); }); },
