为什么我会收到 422 错误代码?
Why am I getting a 422 error code?
我正在发出 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 允许您在它接受的字段上定义某些验证。如果您未通过这些验证,它将 return 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: 'john@example.com',
numberOfOffices: 1,
numberOfEmployees: 2,
}
}
我正在发出 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 允许您在它接受的字段上定义某些验证。如果您未通过这些验证,它将 return 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: 'john@example.com',
numberOfOffices: 1,
numberOfEmployees: 2,
}
}