【发布时间】:2018-08-29 21:02:14
【问题描述】:
在我的项目中,我有一个页面来处理登录表单、注册表单和密码重置表单。
对于前两个,一切正常。最后,我找到了一种发送自己的电子邮件而不是 laravel 的默认电子邮件的方法,但现在我想在成功时停止重定向。
对于这个故事,当我点击提交时,我会启动一个 sweetalert 通知,使用 Ajax 调用重置控制器并等待响应。
但是,页面会在成功时重新加载。我找不到阻止重定向的方法,只是将 json 发送到我的 Ajax。
我的 login.js :
$(".m_login_forget_password_submit").click(function(l){
var t=$(this),r=$(this).closest("form");
t.addClass("m-loader m-loader--right m-loader--light");
swal({
title:"Mot de passe",
text:"Génération du lien.",
type:"info"
});
var $this = $(this);
$.ajax({
type: 'POST',
url: 'password/request',
data: $this.serializeArray(),
success:function(data){
$("#m_login_signup_submit").toggleClass("m-loader m-loader--right m-loader--light");
swal({
title:"Succès",
text:"Votre demande de compte a été transmise à nos équipe.",
type:"success"
});
},
error: function(data){
$("#m_login_signup_submit").toggleClass("m-loader m-loader--right m-loader--light");
if( data.status === 422 ) {
var error = "Les erreurs suivantes ont été trouvées :";
var errors = data.responseJSON;
$.each( errors, function( key, value ) {
error += '<br>▸ ' + value[0];
});
swal("Erreur",error,"error")
}
}
});
我的自定义 ResetPasswordController :
class ResetPasswordController extends Controller
{
use ResetsPasswords;
/**
* Where to redirect users after resetting their password.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get the response for a successful password reset.
*
* @param string $response
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse
*/
protected function sendResetResponse($response)
{
return 'ok';
}
}
有人知道如何防止在发送电子邮件重置密码成功时重定向并改为发送 json 吗?
感谢您的帮助。
【问题讨论】:
-
你使用的是什么版本的 Laravel?
-
我使用 5.6 版的 laravel
标签: laravel