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ルート:
Route::post('/office-depot-register', ['uses' => 'OfficeDepotController@register', 'as' => 'office-depot-register']);
Laravelコントローラー:
public function register(Request $request)
{
$this->validate($request, [
'companyName' => 'required',
// ...
]);
// ...
}
Laravelを使用すると、受け入れるフィールドに特定の検証を定義できます。これらの検証に失敗すると、HTTP 422 - Unprocessable Entity
が返されます。特定のケースでは、companyName
が必要であり、空の文字列が必要な検証に合格しないため、空のスケルトンオブジェクトで独自の検証テストに失敗しているようです。
他のフィールドも同様に検証されていると仮定すると、データが入力されたオブジェクトで問題が解決するはずです。
data: {
form: {
companyName: 'Dummy Company',
street: '123 Example Street',
city: 'Example',
state: 'CA',
Zip: '90210',
contactName: 'John Smith',
phone: '310-555-0149',
email: '[email protected]',
numberOfOffices: 1,
numberOfEmployees: 2,
}
}