将对象作为参数发送到axios中的POST将不起作用

时间:2017-05-04 11:28:31

标签: vue.js axios

我正在尝试使用axios在VUE.JS中发送帖子请求,但是存在问题。

我在数据中设置了这个TEST对象

data () { return { test:{ name: 'foo', surname: 'bar' } }; },

这是我的方法

testMethod(){

  axios.post('url',this.test)
  .then(response => {
    console.log(response);
  })
  .catch(error => {
    console.log(error);
  });
  }`

它无效。它正在向我的API发送一个空对象。如果我试试这个,它就可以了

testMethod(){

  axios.post('url',{'name':'foo', 'surname': 'bar'})
  .then(response => {
    console.log(response);
  })
  .catch(error => {
    console.log(error);
  });
  }

对于什么是错的任何想法?

不确定这是不是一个错误。

1 个答案:

答案 0 :(得分:1)

问题在于变量的范围,您使用的是“ this”一词,但其值取决于调用的位置。 声明一个变量以确保引用了想要的对象

methods: {
  testMethod() {
    //Ensure that you are referring to the Vue Object
    var vm = this;
    axios.post('url',vm.test)
    .then(response => {
      console.log(response);
    })
    .catch(error => {
      console.log(error);
    });
  }
}