前后端通讯实测
前后端通讯实测
以Vue.js为代表的前端
1.基于axios的请求
- 在main.js中配置默认请求地址:
axios.defaults.baseURL = 'http://localhost:9999/';
- 在main.js中配置全局使用axios:
Vue.prototype.$axios = axios;
以Springboot为代表的后端
1.配置跨域允许
1 | package io.kid19999.backstage.config; |
综合测试:
素材准备:
- 前端 对象
1 | data(){ |
- 后端 对象
1
2
3
4
5
6
7import lombok.Data;
@Data
public class Login {
private String adminId;
private String adminPwd;
}
1.POST测试:
- 基于对象的传输:
1 | 前端: |
- 基于表单的传输:
- 基于 FormData 填充(Content-Type: multipart/form-data)协议
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24前端:
postForm(){
var self = this;
let data = new FormData();
data.append('adminId','kid');
data.append('adminPwd','132456456');
this.$axios.post('/test2', data).then(function (response) {
console.info(self.data);
console.log(response.data);
}).catch(function (error) {
console.error("请求错误!");
});
},
后端:
@PostMapping("/test2")
Result postForm(@RequestParam("adminId") String adminId,
@RequestParam("adminPwd") String adminPwd){
System.out.println(adminId + " " + adminPwd);
Result result = new Result();
result.setStatusCode(1);
result.setInfo("post form success");
return result;
}
2.PUT测试:
- 基于对象的传输:
1 | 前端: |
- 基于表单的传输:
- 基于qs库,(Content-Type: application/x-www-form-urlencoded)协议
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22前端:
putForm(){
var self = this;
this.$axios.put('/test2', qs.stringify(self.data)
).then(function (response) {
console.info(self.data);
console.log(response.data);
}).catch(function (error) {
console.error("请求错误!");
});
},
后端:
@PutMapping("/test2")
Result putForm(@RequestParam("adminId") String adminId,
@RequestParam("adminPwd") String adminPwd){
System.out.println(adminId + " " + adminPwd);
Result result = new Result();
result.setStatusCode(1);
result.setInfo("put form success");
return result;
}
3.GET测试:
- 只能!!! 基于表单的传输:
1 | 前端: |
4.DELETE测试:
- 基于对象的传输:
1 | 前端: |
- 基于表单的传输:
1 | 前端: |
总结
- post和put类似可用各种方式传输,也最为安全
- get只能用表单传输, {params: self.data}
- delete两种方式都能,但是参数格式略有不同:表单{params: self.data},对象{data: self.data}
推荐阅读
http://kid1999.github.io/2019/12/03/%E5%89%8D%E5%90%8E%E7%AB%AF%E9%80%9A%E8%AE%AF%E5%AE%9E%E6%B5%8B/
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Kid1999' Blog!