1

我想获得一个与 Vue.JS 2 和 Laravel 5.4 一起使用的 API。在我的 App.vue 我有以下代码:

export default {
  name: 'app',
  components: {
    Hello
  },
  created () {
    const postData = {
      grant_type: 'password',
      client_id: 2,
      client_secret: 'somesecret',
      username: 'my@mail.com',
      password: 'password',
      scope: ''
      }
      this.$http.post('http://localhost:8000/oauth/token', postData)
        .then(response => {
           console.log(response)
           const header = {
             'Accept': 'application/json',
             'Authorization': 'Bearer ' + response.body.access_token
           }
           this.$http.get('http://localhost:8000/api/test', {headers: header})
             .then(response => {
               console.log(response)
             })
        })
   }
}

虽然 'POST' 工作没有任何问题,但我无法让 'GET' 工作。

我的 console.log 显示以下内容:

Uncaught (in promise) TypeError: Cannot read property 'access_token' 
of undefined at eval (eval at <anonymous> (app.js:810), <anonymous>:33:51)
(anonymous) @ App.vue?86c0:29

不幸的是,我找不到任何解释为什么会发生这种情况。有谁知道他们是否将“access_token”更改为其他内容或为什么会发生这种情况?

希望有人知道:|

提前致谢!

保罗

4

2 回答 2

3

这不是我的想法。但我确定如果您使用 axios 作为 XHR 客户端,您的响应正文在“数据”参数而不是“正文”下。

总之,您对 access_token 的引用将是

'Authorization': 'Bearer ' + response.data.access_token

于 2017-01-26T19:18:07.093 回答
1

你可以参考下面的链接或者你可以和下面的git仓库对比一下

https://github.com/safiahmed4cs/Larave-Passport-with-Vue-Vue-Router-and-axios

其中有 Laravel 应用程序、Laravel Passport、

Axios、Vue Js、Vue Resource 和 Vue Router 也被导入,

如果您需要更多信息或遇到任何问题,请告诉我。

于 2017-02-01T13:38:01.760 回答