axios请求与响应配置参数(koa项目+引入axios)

2021-05-13  本文已影响0人  似朝朝我心

请求配置参数

axios常见发起的请求无非两种,get请求和post请求,如下方代码,但这样写虽然方便,但都没有额外进行对各种参数配置,实际开发中标准需求,更多见的是一种参数配置的写法(如下图1)。

        <script type="text/javascript">
            axios.post('/list2',{
                    userName:'qfb',
                    age:22,
                    gender:'女'
            })
            .then((res)=>{
                console.log(res)
            })
            .catch((err)=>{
                console.log(err)
            })
--------------------------------------------------------------
            axios.get('list/',{
                params:{
                    userName:'qfb',
                    age:21,
                    gender:'男'
                }
            })
            .then((res)=>{
                console.log(res)
            })
            .catch((err)=>{
                console.log(err)
            })
        </script>
图1

axios配置参数写法:单独一个axios()
发送get请求

        <script type="text/javascript">
            axios({
                url:'/list',
                method:"GET",
                params:{ userName:'Lily' }, //以查询字符串形式携带参数
                headers:{
                    'Content-Type':"application/json"
                }
            })
            .then((res) => {
                console.log(res)
            })
            .catch((err) => {
                console.log(err)
            })
        </script>

后端代码:

router.get('/list', async (ctx, next) => {
    console.log(ctx.request.query)
    ctx.body = {
        errCode:0,
        errMsg:"ok",
        list:[
            {"userName":"覃放","age":22}
        ]
    }
})
router.post('/list2', async (ctx, next) => {
    console.log(ctx.request.body)
    ctx.body = 'list2'
})

发送post请求

        <script type="text/javascript">
            axios({
                url:'/list2',
                method:"POST",
                headers:{
                    'Content-Type':'application/json'
                },
                data:{ //以"名称值"对的形式携带参数
                    userName:'Jelly', 
                    age:23
                }
            })
            .then((res) => {
                console.log(res)
            })
            .catch((err) => {
                console.log(err)
            })
        </script>

发送post请求既携带查询字符串参数,又携带“名称值”对形式的参数

        <script type="text/javascript">
            axios({
                url:'/list2',
                method:"POST",
                params:{ userName:'Lily' },
                headers:{
                    'Content-Type':'application/json'
                },
                data:{ //以"名称值"对的形式携带参数
                    userName:'Jelly', 
                    age:23
                }
            })
            .then((res) => {
                console.log(res)
            })
            .catch((err) => {
                console.log(err)
            })
        </script>

axios.get()配置参数写法:

        <script type="text/javascript">
            axios.get('/list',{
                headers:{
                    'Content-Type':'appliction/json'
                }
            })
            .then((res) => {
                console.log(res)
            })
            .catch((err) => {
                console.log(err)
            })
        </script>

axios.post()配置参数写法:

        <script type="text/javascript">
            axios.post('/list2',{userName:'Jam'},headers:{'Content-Type':'appliction/json'})
            .then((res) => {
                console.log(res)
            })
            .catch((err) => {
                console.log(err)
            })
        </script>

axios.defaults全局配置写法,无论你发起的是get请求还是发起post请求,默认都会携带全局配置过的参数。

        <script type="text/javascript">
            axios.defaults.params = {name:"qfb"}
            axios.get('/list',{})
            .then((res) => {
                console.log(res)
            })
            .catch((err) => {
                console.log(err)
            })
            
            axios.post('/list2',{})
            .then((res) => {
                console.log(res)
            })
            .catch((err) => {
                console.log(err)
            })
        </script>

局部优先级高于全局优先级

        <script type="text/javascript">
            axios.defaults.params = {name:"qfb"}
            axios.get('/list',{
                params:{
                    name:'Bom'
                }
            })
            .then((res) => {
                console.log(res)
            })
            .catch((err) => {
                console.log(err)
            })
            
            axios.post('/list2',{},{
                params:{
                    name:'cookie'
                }
            })
            .then((res) => {
                console.log(res)
            })
            .catch((err) => {
                console.log(err)
            })
        </script>

响应配置参数



上一篇下一篇

猜你喜欢

热点阅读