嗨,我有一个最奇怪的错误:我只是想通过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 localhost/…/web/app_dev.php/user/register/emailcheck),我都会在firebug"get localhost/…/web/app-dev.php/login"中收到一个ajax get请求。有什么想法吗?
您的控制器可能位于防火墙后面,需要一些访问权限(角色)。
使用security.yml
中的access_control
并指定:
access_control:
....
/path-to-email-check-controller: IS_AUTHENTICATED_ANONYMOUSLY
....
请确保将其放在任何类似规则(例如/login
)