【问题标题】:Axios is returning a string called "Array" instead of an objectAxios 正在返回一个名为“Array”的字符串而不是一个对象
【发布时间】:2018-04-01 03:14:22
【问题描述】:

我的 Vue 应用程序中的以下代码在应该返回对象时将数据作为名为“Array”的字符串返回。为了简洁起见,代码被简化:

Component.vue

import axios from 'axios';

axios.post(URL_HERE)
    .then(function(response) {
        // success
        console.log(response);
})

这将返回以下内容,这是错误的,因为我期望一个带有令牌的对象。

{data: "Array", status: 200, statusText: "OK", headers: {content-type: "text/plain;charset=UTF-8"}, config: Object, …}

但是,如果我以同样的方式使用 XMLHttpRequest(),它会成功返回我所追求的内容。为什么 Axios 会返回一个名为“Array”的字符串?

这是从 XMLHttpRequest 返回的:

{__ob__:Observer, token: "123456" }

【问题讨论】:

  • 试试 console.log(response.data);
  • ReferenceError: 找不到变量:响应

标签: javascript http vue.js vue-component axios


【解决方案1】:

尝试为您的post 添加空的“数据”对象,例如 axios.post(URL_HERE,{})

【讨论】:

  • 我仍然得到相同的结果,太奇怪了。可能是标题相关还是什么?
  • 嗯,奇怪。请问,您能检查一下您的请求标头 Content-Type 吗?
  • 我通过 Axios 得到 'Content-Type": [ "text/plain;charset=UTF-8'。还尝试了 vue-resource 并得到了相同的结果:/
【解决方案2】:

经过大量搜索,我找到了这个问题的答案。添加以下标头使一切按预期工作:

axios.post(URL, '', {
        headers: {
           'Accept': '*/*'
        }
     })

【讨论】:

    猜你喜欢
    • 2022-01-18
    • 2020-09-29
    • 2021-12-21
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多