AxiosError: options must be an object ERR_BAD_OPTI

前端技术 / 822人浏览 / 0人评论

AxiosError: options must be an object 在vue发起对后端接口的http请求时,报了这个错误“AxiosError: options must be an object ERR_BAD_OPTION_VALUE”一直不知道啥原因,仔细查过代码,也没发现哪里不对,后来群里找到zeng的博客,看到了解决方案,顺便把代码贴出来,和大家分享一下:

错误提示

AxiosError {message: 'options must be an object', name: 'AxiosError', code: 'ERR_BAD_OPTION_VALUE', stack: 'AxiosError: options must be an object\n    at Objec…les/user.ts:30:7\n    at new Promise (<anonymous>)'}
code
: 
"ERR_BAD_OPTION_VALUE"
message
: 
"options must be an object"
name
: 
"AxiosError"
stack
: 
"AxiosError: options must be an object\n    at Object.assertOptions (http://localhost:8080/node_modules/.vite/deps/axios.js?v=e0a10e20:1563:11)\n    at Axios.request

产生原因 axios版本升级后,在请求参数中熟组序列化会出问题

解决方案

修改前代码:

this.instance.get<T>(url,{
                params:parms,
                paramsSerializer:(parms)=>{
                    return qs.stringify(parms)
                }
            })

修改之后代码:

    this.instance.get<T>(url,{
                params:parms,
                paramsSerializer: { 
                  serialize:function(params) {
                       return qs.stringify(params, { arrayFormat: 'repeat' })
                     }
                }
            })

测试结果: AxiosError: options must be an object

评论列表

还没有人发表评论

发表评论 取消回复