axios的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了axios的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3818字,纯文字阅读大概需要6分钟。
内容图文
参考链接
https://segmentfault.com/a/1190000018774494
http://blog.itblood.com/447.html
https://blog.csdn.net/linglingzi001/article/details/108349261
https://www.cnblogs.com/dw039/p/11104628.html
https://www.cnblogs.com/somliy/p/13189485.html
https://blog.csdn.net/u012443286/article/details/88560240
http://www.axios-js.com/zh-cn/docs/
axios使用
官网案例
? 先来看看官方给出的例子,挺简单的...
axios.get('/user?ID=12345')
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
axios.get('/user', {
params: {
ID: 12345
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
带配置的axios
- axios.request(config)
- axios.get(url[, config])
- axios.delete(url[, config])
- axios.head(url[, config])
- axios.post(url[, data[, config]])
- axios.put(url[, data[, config]])
- axios.patch(url[, data[, config]])
这些是创建请求时可以用的配置选项。只有 url
是必需的。如果没有指定 method
,请求将默认使用 get
方法。
//以get为例
axios.get('/test', {
params: {
id: 123
},
timeout: 1000,
...//其他相关配置
})
//以post为例
axios.post('/test', {
id: 123
},{
timeout: 1000,
...//其他相关配置
})
配置项很多,可以去官方文档详细配置 查看,但是注意:配置中url是必须的,其余可以没有。
写在前面:
-
日常常用的参数传递,下面的自用基于这两种形式
-
Request Payload
传递对象{"key":"value","key":"value"...}
-
Form Data
形式key=value&key=value&key=value...
-
-
axios
的两种请求方式GET
,POST
,默认是GET
,其实这点上面已经提到了 -
再往下就得提到
axios
两种传参形式params
与data
params
是添加到url的请求字符串中的,一般用于get
请求。data
是添加到请求体body
中的, 一般用于post
请求。
注意:post请求也可以使用params方式传值,但是get不能使用data方式传参
例子
GET
this.$axios.get("test", {params:{name:"carlget1", password:"password"}})
.then(function(res){
console.log( res );
})
.catch(function(err){
console.log( err );
});
// 后台 用具体参数接收
@GetMapping("/test")
public String test(String name, String password) {
return "ok";
}
// 后台也可以用 对象形式接收
@Data
public class User {
String name;
String password;
}
@GetMapping("/test")
public String test(User user) {
return "ok";
}
注意:get请求不允许传递List,需要使用qs插件或者配置axios,具体参考链接
POST
? 传参形式默认data,默认参数格式为json,所以后端默认接收方式默认是对象形式
this.$axios
.post('/login', {
username: this.loginForm.username,
password: this.loginForm.password
})
@PostMapping(value = "/login")
@ResponseBody
public String login(@RequestBody User user){
User user1 = Service.Find(user);
JSONObject object = new JSONObject();
return object;
}
? 后端想要接受Form Data数据?
? 方法1:直接拼接成字符串传递
var data = 'name=123&val=456';
axios.post('/', data)
? 方法2:是用parms的方式传参(配置的时候修改即可),同GET
this.$axios
.post('/login', { parms:{
username: this.loginForm.username,
password: this.loginForm.password
}})
? 方法3:不想用parms方式传参,请看下面两种方法,本质都是通过序列化的方式进行对象的 k=v 格式化
-
qs
//qs是axios自带的 使用之前记得引入一下 impost qs from 'qs' this.$axios .post('/login', qs.stringify(data));
-
URLSearchParams
var param = new URLSearchParams(); param.append('username', 'admin'), param.append('password', 'admin'), this.$axios .post('/login', param);
如要传递Form Data格式的数据推荐使用
parms
或者qs
的方式,URLSearchParams
这种会显得冗长,而且有的浏览器可能出问题,可以使用官网推荐的transformRequest
,详细看官网文档
写在最后
- 后端注解
@RequsetParam
获取 k=v 格式的参数,get/post都可以。 @RequestBody
获取payload中的数据,即一个对象。- 不写注解时,默认
@RequsetParam
机制,并且要求前端传递的参数名称与后端定义的参数名称一致,否则无法获取到数据。 - 若使用 data 传递参数,必须使用一个实体类接收参数,而且需要添加注解
@RequestBody
进行修饰。 - 若使用 Map 接收参数,必须使用
@RequestParam
修饰。
内容总结
以上是互联网集市为您收集整理的axios的使用全部内容,希望文章能够帮你解决axios的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。