8-1的一点问题
来源:8-1 登录第一部分 获取token
Guguuuu
2022-07-28
一、如图。。。
老师您帮我看看我的代码,8-1的逻辑我全部过了一遍,发现没问题。
https://github.com/Guguuuu/zhihu.git
二、还有昨天那个疑问我也还未弄懂。这节遇到一个类似的
这里通过解构赋值拿到请求中的data。
然后我们通过commit把data传到对应的方法
rawdata参数接收了刚刚传的data,那么这里写rawData.data 我认为就已经等于data.data了
而接口文档中,如下图
这个通过解构赋值拿到的data中,并没有又一层的data结构,里面只有token,,,,,,
老师我不知道怎么在回答中传入图片,我在这里传
请问是这样理解吗
写回答
1回答
-
张轩
2022-07-28
同学你好
第一个问题,请看 7-5 小节,有非常详细的解决方案:http://coding.imooc.com/lesson/449.html#mid=39379
原因就是 Post/Patch 这种请求,需要在 body 中传递 icode,不能仅仅在 URL 上传递,要不会拿不到。假如你去看你 Login 的请求,就会发现它报错为 icode 为空。
第二个问题:我在这里合并回答一下,另外一个问题我就不回复了。
原因就是 axios 在返回的时候又封装了一层,也就是说它多加了一层结构,不是直接返回的 data。如果你去看 axios 的定义就会发现 axios 返回的是这么个数据结构
export interface AxiosResponse<T = any, D = any> { data: T; status: number; statusText: string; headers: AxiosResponseHeaders; config: AxiosRequestConfig<D>; request?: any; }
上面的 data 才是最后数据的返回,还能获取其他的一系列属性。
所以我们写的时候要多写一层,比如
const resp = await axios.post(...) resp.data 才是到我们的返回的数据 所以 resp.data.data.token 才能拿到最终的数据
112022-07-28
相似问题