Laravel 5 Ajax帖子
发布时间:2020-12-16 02:45:53 所属栏目:百科 来源:网络整理
导读:嗨,我真的很难在laravel 5中的新结构,我试图通过 AJAX帖子提交表单,但我一直收到错误422(错误的请求).我错过了什么或者我需要对我的Request类做些什么吗?这是我的代码: 控制器: public function login(LoginRequest $request){ if ($this-auth-attempt($r
嗨,我真的很难在laravel 5中的新结构,我试图通过
AJAX帖子提交表单,但我一直收到错误422(错误的请求).我错过了什么或者我需要对我的Request类做些什么吗?这是我的代码:
控制器: public function login(LoginRequest $request) { if ($this->auth->attempt($request->only('email','password'))) { return redirect("/"); } return response()->json(['errors'=>$request->response]); } LoginRequest文件(我添加了一个自定义响应方法): public function response(array $errors) { if ($this->ajax() || $this->wantsJson()) { return response()->json($errors,422); } return response()->json($errors); } 我的ajax代码: $("#form-login").submit(function(){ var selector = $(this); $.ajax({ url: selector.attr("action"),type: "post",data: selector.serialize(),dataType: "json",}).done(function(data){ console.log(data); if(data.status == "failed"){ alert("error"); }else{ alert("success"); } }); return false; }); 所以我的问题是,当我提交表单时,我可以从我的控制台看到 – 无法加载资源:服务器响应状态为422(错误请求) 请有人帮忙.提前致谢! 解决方法
我其实只是在努力解决这个问题,实际上答案非常简单.
因为Laravel的请求以状态代码422响应,所以jQuery的成功/完成函数不会触发,而是触发错误函数,因为它不是200. 因此,为了从验证失败的Request对象生成的AJAX请求中获取JSON响应,您需要定义错误处理程序,在您的情况下如下: $.ajax({ /* ... */ }) .done(function(response) { /* ... */ }) .error(function(data) { // the data parameter here is a jqXHR instance var errors = data.responseJSON; console.log('server errors',errors); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |