axious 학습

21230 단어 Vue
axious
ajax와axios,fetch의 차이
https://www.jianshu.com/p/8bc48f8fde75
홈페이지 참조
https://www.kancloud.cn/yunye/axios/234845
chorme 브라우저 설정
https://jingyan.baidu.com/article/148a1921c9dbf24d71c3b11f.html
Axious에서 Get 요청 보내기
   var App = {
        template:`

`
, methods:{ sendAjax(){ this.$axios.get('http://127.0.0.1:8000/fs/ajax1.html?p=123') .then(res=>{ console.log(res) }).catch(err=>{ console.log(err) }) } } }

혹은
//    ,          
axios.get('/user', {
    params: {
      ID: 12345
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

post 요청 보내기
         sendPost(){
                this.$axios.defaults.baseURL='http://127.0.0.1:8000/'
                this.$axios.post('fs/f1.html',{
                    user: 'Fred',
                    pwd: 'Flintstone',
                    email:'[email protected]',
                    age:'20'
                })
                    .then(res=>{
                        console.log(res)
                        console.log(res.data)
                    }).catch(err=>{
                    console.log(err)
                })
            }
           >this.$axios.defaults.baseURL='http://127.0.0.1:8000/' 

기본 URL을 설정합니다. 뒤에 보낼 때 이걸로 연결할 수 있습니다.
동시 요청
https://www.kancloud.cn/yunye/axios/234845
axios 관련 구성
transformResponse transformResponsethen/catch에 전달하기 전에 응답 데이터 수정 허용
 sendAjax(){
        this.$axios.get('http://127.0.0.1:8000/fs/ajax1.html',{
            params:{
                id:6
            },
            // `transformResponse`      then/catch  ,        
            transformResponse: [function (data) {
                //   data         
                console.log(data)
                var res = JSON.parse(data)
                res.msg = 'transformResponse   data'
                return res;
            }],
        })
            .then(res=>{
                console.log(res)
                console.log(res.data)
            }).catch(err=>{
            console.log(err)
        })
    },

주의:tans... 에서 json 변환을 하지 않고 직접 되돌아오면 then에서 얻은res는 문자열입니다
transformRequest
sendPost(){
        this.$axios.defaults.baseURL='http://127.0.0.1:8000/'
        this.$axios.post('fs/ajaxpost',{
            user: 'Fred',
            pwd: 'Flintstone',
            email:'[email protected]',
            age:'20',

        },{
            // `transformRequest`           ,      
            //      'PUT', 'POST'   'PATCH'        
            //                  ,  ArrayBuffer,  Stream
            transformRequest: [function (data) {
                //   data         
                console.log(data)
                data.user = 'Herry'
                data = JSON.stringify(data)
                return data;
            }],
        })
            .then(res=>{
                console.log(res)
                console.log(res.data)
            }).catch(err=>{
            console.log(err)
        })
    }

주의:transform Request는 데이터를 json 문자열로 변환해야 합니다. 그 다음에 가져온 것은 대상입니다.
요청 차단기 및 응답 차단기
요청 차단기와 응답 차단기를 이용하여 모범 쿠키와 애니메이션 불러오기
  • 요청 차단기
  • //       
                    this.$axios.interceptors.request.use((config)=>{
                        console.log('---config',config)
                        var token = localStorage.getItem('token')
                        if(token){
                            config.headers['token'] = token
                        }
                        this.isShow = true
                        // setTimeout(function () {
                        //     console.log('timeout')
                        // },1000)         
                        return config
                    },function (err) {
                        return Promise.reject(err)
                    })
    
    
  • 응답 차단기
  •        //        
                    this.$axios.interceptors.response.use((response)=>{
                        //          
                        console.log('response---',response)
                        if(response.data.token){
                            localStorage.setItem('token',response.data.token)
                        }
                        this.isShow = false
                        return response;
                    }, function (error) {
                        //          
                        return Promise.reject(error);
                    });
    

    더.
    https://www.kancloud.cn/yunye/axios/234845

    좋은 웹페이지 즐겨찾기