Php ajax调用后的Laravel验证重定向
我有一个新的5.3安装,希望与邮递员进行api调用。我还尝试了angular2,以确保这不是邮递员的问题 在我的Php ajax调用后的Laravel验证重定向,php,laravel,api,laravel-5,Php,Laravel,Api,Laravel 5,我有一个新的5.3安装,希望与邮递员进行api调用。我还尝试了angular2,以确保这不是邮递员的问题 在我的routes/api.php中,我得到了一条简单的路线: Route::post('test', function(\App\Http\Requests\LoginRequest $request) { return $request->all(); }); LoginRequest正在检查电子邮件和密码字段是否存在。如果是,则输出为例外。但是当它丢失时,它会重定向到/
routes/api.php
中,我得到了一条简单的路线:
Route::post('test', function(\App\Http\Requests\LoginRequest $request) {
return $request->all();
});
LoginRequest正在检查电子邮件和密码字段是否存在。如果是,则输出为例外。但是当它丢失时,它会重定向到/
我是否必须为ajax调用的表单验证添加一些信息?我认为当有ajax调用时,laravel会返回一个json错误对象
更新:
我发现我错过了Postman中的
Accept application/json
标题。有了它,它就工作了。但是有没有一种方法可以说所有的api/*
调用都应该被视为一个json调用呢?您可以像这样响应ajax调用
return response()->json(array('error' => $validator->getMessageBag()->toArray()), 400);
响应状态400指示错误,您将进入错误部分
error: function(jqXHR, textStatus, errorThrown){
var errResponse = JSON.parse(jqXHR.responseText);
if (errResponse.error) {
$.each(errResponse.error, function(index, value)
{
console.log(value);
});
}
}
我为我的请求创建了一个新的父类。它检查路由是否属于
api
组。我试图向组中添加一个中间件来添加头,但是这个技巧失败了
class JsonRequest extends FormRequest
{
public function expectsJson()
{
return ($this->route()->getAction()['middleware'] == 'api');
}
}
在发出AJAX请求时,如何获得重定向?您是否从
/
获取内容作为响应?更新了我的回答相关:我想使用FormRequest
类,以便控制器内的代码尽可能小。