http的GET方法参数中不能传列表,接收端的key会变
如下
async initTable() { await getHostAttributesForUser({'username': this.username}).then(response => { this.listQuery.user_preferences = response.data.preferences # 这里是一个列表this.preference_index_list = response.data.preference_index_list this.colConfigs = response.data.colConfigs getHost(this.listQuery).then(response => { this.tableData = response.data.items this.total = response.data.total }) }) },
实际转换发送的请求为:
http://localhost:9528/dev-api/cmdb/host/get?node_key=saas&page=1&limit=10&user_preferences[]=公网IP&user_preferences[]=VPC私有IP&user_preferences[]=vCPU 核数&user_preferences[]=内存&user_preferences[]=实例计费方式&user_preferences[]=系统类型
服务端接收到的request.GET内容为
1 | <QueryDict: { 'node_key' : [ 'saas' ], 'page' : [ '1' ], 'limit' : [ '10' ], 'user_preferences[]' : [ '公网IP' , 'VPC私有IP' , 'vCPU 核数' , '内存' , '实例计费方式' , '系统类型' ]}> |
解决方法
async initTable() { await getHostAttributesForUser({'username': this.username}).then(response => { this.listQuery.user_preferences = _.join(response.data.preferences, ',') #将列表转换成字符串 this.preference_index_list = response.data.preference_index_list this.colConfigs = response.data.colConfigs getHost(this.listQuery).then(response => { this.tableData = response.data.items this.total = response.data.total }) }) },
做有积累的事~~
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步