Stripe payments 未捕获类型错误:无法读取属性';邮政';未定义VueJS的定义

Stripe payments 未捕获类型错误:无法读取属性';邮政';未定义VueJS的定义,stripe-payments,vuejs2,laravel-5.4,Stripe Payments,Vuejs2,Laravel 5.4,在Laravel 5.4中,我试图用Stripe付款。我正在关注laracast上的视频如果您有帐户,可以在此处观看视频: 我对其进行了修改以满足我的需要,但他所做的某些事情与vue的0.3版不兼容,除了这个问题之外,我能够修复该版本 我有以下代码: data: function data() { return { stripeEmail: '', stripeToken: '' }; }, created: function created() { this

在Laravel 5.4中,我试图用Stripe付款。我正在关注laracast上的视频如果您有帐户,可以在此处观看视频:

我对其进行了修改以满足我的需要,但他所做的某些事情与vue的0.3版不兼容,除了这个问题之外,我能够修复该版本

我有以下代码:

data: function data() {
  return {
     stripeEmail: '',
     stripeToken: ''
  };
},
created: function created() {

  this.stripe = StripeCheckout.configure({

    key: "my_key",
    image: "https://stripe.com/img/documentation/checkout/marketplace.png",
    locale: "auto",
    token: (token) => {
      this.stripeToken = token.id;
      this.stripeEmail = token.email;

      this.$http.post('/payment', this.$data).then(response => alert('Message'));
    }
  });
},


methods: {
  buy: function buy() {
    this.stripe.open({
      name: "One Month Subscription",
      description: "Having your business displayed for one month.",
      zipcode: true,
      amount: 1000

    });
  }
}
我可以输入信息,但一旦我点击“提交”,它就会返回错误:

Uncaught TypeError: Cannot read property 'post' of undefined
我在bootstrap.js中安装了vue资源,如下所示:

window.Vue = require('vue');
require('vue-resource');
这解决了$http问题,但现在我遇到了post问题


如果您需要任何其他信息,请告诉我。

我认为
可能有问题。具体而言,创建的
中的
可能与
标记中的
不同。尝试这:

created: function created() {
  var self = this;

  self.stripe = StripeCheckout.configure({
    key: "my_key",
    image: "https://stripe.com/img/documentation/checkout/marketplace.png",
    locale: "auto",
    token: (token) => {
      self.stripeToken = token.id;
      self.stripeEmail = token.email;

      self.$http.post('/payment', self.$data).then(response => alert('Message'));
    }
  });
},

我知道您使用的是arrow函数,所以情况不应该是这样,但我还是要尝试一下,看看效果如何。

您是否添加了一些调试
console.log()
语句来找出原因?
self.$http
的值是多少?这是您必须逐步调试的内容;不幸的是,这里不太可能有一个明确的答案。