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 });
});

 

 
posted @ 2020-12-16 14:44  董珊珊  阅读(115)  评论(0)    收藏  举报