嗨,我有一个最奇怪的错误:我只是想通过AJAX调用来检查电子邮件是否已经完成。我得到的是FOS用户登录表单,而不仅仅是收到电子邮件的消息..
这是我的代码
jquery部分
$('body').on('click','.classicinput', function(){
var emailValue = $('#fos_user_registration_form_email').val();
//POST ajax
var DATA = 'email=' + emailValue;
$.ajax({
type: "POST",
// Routing.generate = fosjsroutingbundle
url: Routing.generate('e_veilleur_user_reigster_emailcheck'),
data: DATA,
cache: false,
success: function(data){
$(".ajaxResponse").html(data);
//alert(data);
}
});
return false;
alert(emailValue); });
由jquery
调用的控制器部分public function InviteEmailAction()
{
$em = $this->getDoctrine()->getManager();
$email = $request->request->get('email');
// si des données ont été envoyé
if($request->isXmlHttpRequest())
{
$router = $this->get('router');
$repository = $this->getDoctrine()->getManager()->getRepository('EVeilleurUserBundle:User');
$checkEmail = $repository->findOneByEmail($email);
//
// if($checkEmail)
// {
// $response= new Response("");
// }
// else
// {
// $response= new Response("");
// }
// return $response;
}
}
首先我的控制器应该出错,因为它没有响应(我评论过它)。它没有
对于我发的每个ajax post post(POST localhost /.../ web / app_dev.php / user / register / emailcheck),我在firebug中有一个ajax get请求" GET localhost /.../网/ app_dev.php /登录&#34 ;. 有什么想法吗?
答案 0 :(得分:0)
您的控制器可能位于防火墙后面,需要一些访问权限(角色)。
使用access_control
中的security.yml
并指定:
access_control:
....
/path-to-email-check-controller: IS_AUTHENTICATED_ANONYMOUSLY
....
请务必将其放在任何类似规则之前(例如/login
)