Axios
axios是基于Promise的HTTP库,用于浏览器和node.js之间的交互
特征:
1.从浏览器中创建XMLHttpRequest
2.从node.js发出http请求
3.支持Promise的API
4.拦截请求和响应
5.转换请求和响应数据
6.取消请求
7.自动转换json数据
8.客户端支持防csRF/XSRF攻击
1.axios发送get请求:
axios.get(url)向服务器发送一个get请求,返回一个promise对象,每一个promise对象都有then方法
发送get请求携带参数:
1.url?后面拼接
2.作为axios.get()方法的第二个参数,第二个参数是一个对象,第二个参数里的内容是params它也是一个对象
axios.get(url,{ params:{ name:"leo", age:"20" } })
2.axios发送post请求:
axios.post(url)向服务器发送一个post请求,返回一个promise对象,每一个promise对象都有then方法
发送post请求携带参数:作为axios.post()的第二个参数,第二个参数是一个对象
axios.post(url,{
key1:value1,
key2:value2
})
3.响应拦截器:对服务端返回的数据做过一些过滤,去掉包裹在数据外的data
// 定义响应拦截器
axios.interceptors.response.use(function(res){
// 参数res是返回的数据
res = {
arr:[{},{},{}],
code:"200",
sdsf:{
arr:[]
}
}
})
axios.get("url").then(function(data){
console.log(data)
})
4.请求拦截器
axios.interceptors.request
async 表示函数里面有异步操作 和 await配套使用 返回值是个promise
这是解决异步的终极方案
async 和 await写法 const fetchD = async () => {
const result = await axios.get(url);
// 设置数据
setState(result.data);
// console.log(result);
};
普通写法
axios.get("http://hn.algolia.com/api/v1/search?query=redux", {
user,
password
}).then(res => {
this.setState({ hit: res.data.hits });
});
浙公网安备 33010602011771号