Vue.js 从一个GET请求访问另一个GET请求的响应

Vue.js 从一个GET请求访问另一个GET请求的响应,vue.js,vuejs2,axios,Vue.js,Vuejs2,Axios,我正在使用Vue与Drupal网站上的外部API进行交互,但是为了每个Drupal用户动态地进行交互,我需要首先从Drupal获得一个令牌。为此,我尝试执行两个GET请求。第一个从Drupal中获取一个承载令牌,第二个使用它来验证第三方API请求 下面是我正在尝试的–我能够在第一个请求的响应中成功地获取令牌,但当我尝试在第二个请求的头中使用令牌时却无法。如果我尝试硬编码我在控制台日志中看到的令牌,它确实可以工作,所以我知道这都不是问题所在。只是第二个请求头中的this.jwt['data']['

我正在使用Vue与Drupal网站上的外部API进行交互,但是为了每个Drupal用户动态地进行交互,我需要首先从Drupal获得一个令牌。为此,我尝试执行两个
GET
请求。第一个从Drupal中获取一个承载令牌,第二个使用它来验证第三方API请求

下面是我正在尝试的–我能够在第一个请求的响应中成功地获取令牌,但当我尝试在第二个请求的头中使用令牌时却无法。如果我尝试硬编码我在控制台日志中看到的令牌,它确实可以工作,所以我知道这都不是问题所在。只是第二个请求头中的
this.jwt['data']['token']
似乎没有收回令牌

为了从第一个响应作为第二个请求头的一部分访问令牌,我需要调整什么

created(){
axios
.get(“/jwt/token”)
。然后(响应=>{
this.jwt=响应
console.log(this.jwt['data']['token'])//这确实显示了我以后要访问的内容
})
},
安装的(){
axios
.get('/comment/doc/'+this.id{
头文件:{Authorization:“Bearer”+this.jwt['data']['token']}/…但这不起作用
})
。然后(响应=>{
this.comments=响应
})
},

组件装载时,对令牌请求的响应可能尚未完成,此时
尚未分配此.jwt

我会将令牌请求移动到
mounted
hook中,仅当令牌请求成功时才会获取注释:

导出默认值{
安装的(){
axios
.get(“/jwt/token”)
。然后(tokenResp=>{
this.jwt=tokenResp
axios
.get('/comment/doc/'+this.id{
标头:{授权:'承载'+this.jwt['data']['token']}
})
。然后(commentsResp=>{
this.comments=commentsResp
})
})
}
}

组件装载时,对令牌请求的响应可能尚未完成,此时
尚未分配此.jwt

我会将令牌请求移动到
mounted
hook中,仅当令牌请求成功时才会获取注释:

导出默认值{
安装的(){
axios
.get(“/jwt/token”)
。然后(tokenResp=>{
this.jwt=tokenResp
axios
.get('/comment/doc/'+this.id{
标头:{授权:'承载'+this.jwt['data']['token']}
})
。然后(commentsResp=>{
this.comments=commentsResp
})
})
}
}

谢谢;这起作用了。作为某种相关的后续行动,令牌请求是否已及时完成,以便方法使用
this.jwt
?在做了这个调整之后,我注意到了他们的一些问题,但这可能是无关的,在这种情况下,如果需要的话,我会添加一个新问题。这取决于。假设没有任何东西等待令牌请求完成(即,它不是
wait
ed,并且没有
then
回调),依赖令牌的任何东西都不能保证有
this.jwt
的值。只有当令牌请求在使用前得到足够快的处理时,它才会起作用,但请求本身取决于网络条件,网络条件可能会有所不同。您最好的选择是在使用
this.jwt
之前等待
请求。谢谢;这起作用了。作为某种相关的后续行动,令牌请求是否已及时完成,以便方法使用
this.jwt
?在做了这个调整之后,我注意到了他们的一些问题,但这可能是无关的,在这种情况下,如果需要的话,我会添加一个新问题。这取决于。假设没有任何东西等待令牌请求完成(即,它不是
wait
ed,并且没有
then
回调),依赖令牌的任何东西都不能保证有
this.jwt
的值。只有当令牌请求在使用前得到足够快的处理时,它才会起作用,但请求本身取决于网络条件,网络条件可能会有所不同。您最好的选择是在使用
this.jwt
之前等待请求。