axios的特点:
1. axios用于封装底层的XMLHttpRequest。
2. 基于promise机制,可以使用承诺对象中的方法(then,catch,finally)。
3. axios会对响应结果做二次封装。
axios中的post方式:
默认发送的是json字符串,也就是请求头的默认格式为:contentType:“application/json”。
问题:如何给后台发送查询字符串格式的数据?
将对象转换为查询字符串:Qs.stringify(obj)
ajax中的post方式:
默认发送的是查询字符串,也就是说请求头的默认格式为:contentType:“application/x-www-form-urlencoded”。
问题:如何给后台发送json字符串格式的数据?
将对象转换成json字符串: JSON.stringify(obj)
axios 请求方式传递参数格式:
axios.get(url[, config])
axios.post(url[, data[, config]])
例子:
1.cdn在线引入插件
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.20.0/axios.min.js"></script>
<script src="https://cdn.bootcdn.net/ajax/libs/qs/6.9.4/qs.min.js"></script>
2.给button绑定事件
<div id="app">
<div>{{response}}</div>
<button @click='findAllCustomers'>查询所有用户信息</button>
<button @click='findCustomerById'>根据id获取顾客信息</button>
<button @click='login'>登录</button>
<button @click='queryCustomers'>分页查询顾客信息</button>
</div>
3.在对应事件内向后台家政接口发送请求
<script>
new Vue({
el: '#app',
data: {
response: []
},
methods: {
//发送请求
}
</script>
4.查询所有顾客信息: get-无参
findAllCustomers() {
// console.log(1)
axios({
url: 'http://公网IP:5588/customer/findAll',
method: 'get',
}).then((res) => {
console.log(res.data.data)
})
}
简写形式:
axios.get('http://公网IP:5588/customer/findAll')
.then((res) => {
console.log(res.data.data)
})
- get-有参
findCustomerById() {
let baseURL = 'http://公网IP:5588/'
axios({
url: baseURL + 'customer/findCustomerById',
method: 'get',
params: { id: 134 }
}).then(res => {
console.log(res.data.data)
this.response = res.data.data
})
}
简写形式:
axios.get(baseURL + 'customer/findCustomerById', { params: { id: 134 } })
.then(res => {
console.log(res.data.data)
this.response = res.data.data
})
- post-json格式:
login() {
let obj = {
password: 123321,
type: 'customer',
username: 'susan'
}
axios({
url: 'http://公网IP:5588/user/login',
method: 'post',
data: obj
}).then((res) => {
console.log(res.data.data)
})
}
简写格式:
axios.post('http://公网IP:5588/user/login', obj).then((res) => {
console.log(res.data.data)
})
7.post-qs格式:
queryCustomers() {
let obj = {
page: 0,
pageSize: 10
}
axios({
url: 'http://公网IP:5588/customer/query',
method: 'post',
data: Qs.stringify(obj)
}).then((res) => {
console.log(res.data.data.list)
})
}
简写格式:
axios.post('http://公网IP:5588/customer/query', Qs.stringify(obj))
.then((res) => {
console.log(res.data.data.list)
})