首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VueJS -用axios加载数据.数据为空

VueJS -用axios加载数据.数据为空
EN

Stack Overflow用户
提问于 2020-11-11 09:45:37
回答 2查看 654关注 0票数 0

我在本地有一个VueJS项目和我的API。当我使用Axios时,我遇到了一个问题,数据没有加载。

Vue警告:无效的支柱:类型检查失败的道具“数据”。预期数组,got对象

所以,这是逻辑的,我理解,当页面加载时,"data“为空,”片()“函数不能在空数组上执行。

我怎么改正呢?

我使用"Vuestic“模板,原始文件是这一个

它们不使用axios,而是直接使用Json文件,因此对于它们来说,“用户”已经为"slice()“函数定义了。

我试着在桌子上使用"v-if“,但没有起作用。

我的代码:

代码语言:javascript
复制
import axios from 'axios';

var tokenStorage = localStorage.getItem('token')
var data = [];
export default {
  data () {
    return {
      data: data.slice(),
      title: 'Les prochaines dates',
    }
  },
  async mounted () {
        axios
    .get('https://api.test/api/dates',
    {
      headers: {
        'Authorization' : 'Bearer ' + tokenStorage 
      }
    })
        .then(response => (this.data = response))
    },

我的API响应:

左边是"dates“,第二个请求是”飞行前请求“(状态代码: 204无内容),我不知道这是否是我出现问题的原因

谢谢^^

EN

回答 2

Stack Overflow用户

发布于 2020-11-11 10:41:31

如果我是对的,服务器需要释放授权请求头

票数 0
EN

Stack Overflow用户

发布于 2020-11-11 10:41:36

您可以使用data.json()将响应转换为适当的格式。

我个人在fetch库中使用js构建,但如果您需要坚持使用它,在axios中也应该这样做。您只需添加身份验证即可。

代码语言:javascript
复制
    data () {
        return {
            response: null
        }
    },
    methods: {
        async doRequest () {
            const response = await fetch('https://api.test/api/dates')
            const data = await response.json();
            console.log(data, data.slice()); // <-- These are the same
            this.response = data.slice();
        }
    },
    created () {
        this.doRequest()
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64784017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档