为什么我收到422错误代码?

时间:2016-05-10 18:44:34

标签: laravel laravel-5.2 vue.js vue-resource

我正在发出POST请求,但除了422响应之外无法获得任何内容。

Vue.js客户端代码:

new Vue({
  el: '#app',

  data: {
    form: {
      companyName: '',
      street: '',
      city: '',
      state: '',
      zip: '',
      contactName: '',
      phone: '',
      email: '',
      numberOfOffices: 0,
      numberOfEmployees: 0,
    }
  },

  methods: {
    register: function() {
      this.$http.post('/office-depot-register', this.form).then(function (response) {

        // success callback
        console.log(response);

      }, function (response) {

        // error callback
        console.log(response);

      });
    }
  }
});

Laravel Routes:

Route::post('/office-depot-register', ['uses' => 'OfficeDepotController@register', 'as' => 'office-depot-register']);

Laravel控制器:

public function register(Request $request)
{
    $this->validate($request, [
        'companyName' => 'required',
        // ...
    ]);

    // ...
}

1 个答案:

答案 0 :(得分:3)

Laravel允许您在其接受的字段上定义某些验证。如果您未通过这些验证,它将返回insertPerson/3。在您的特定情况下,您似乎没有使用空框架对象验证自己的验证测试,因为需要HTTP 422 - Unprocessable Entity,并且空字符串未通过所需的验证。

假设其他字段经过类似验证,填充的数据对象应该可以解决您的问题。

companyName