我已经添加了一个模糊的输入和点击提交按钮,以验证电子邮件存在或不 AJAX 调用。
代码很简单,只需检查现有数据并返回true false作为响应。
在本地,它工作得很好,但是在客户端的服务器上, AJAX 没有像预期的那样响应。响应状态是200,但是在浏览器控制台上的响应预览中没有任何内容。为了更清楚,添加了图片。
AJAX 代码:
jQuery.ajax({
url : "{{ path('sales_account_email_exist') }}",
type : "POST",
cache : false,
data : {email:email_val,user_id:$("#user-id").val()},
success : function(data){
$(".loader").hide();
var obj = $.parseJSON(data);
if(obj===false)
{
$("#duplicate_email_exist").css("display","inline-block");
errorMessage = '<i class="warning sign icon"></i>' + email_val + ' : Email already exists in the system.';
$("#duplicate_email_exist").html(errorMessage);
email_exist_valid = false;
}
else
{
$("#duplicate_email_exist").css("display","none");
$("#duplicate_email_exist").html("");
email_exist_valid = true;
}
}
})
AJAX 后端代码:
/**
* @Route("/exist-email", name="sales_account_email_exist",methods={"GET","POST"})
*/
public function emailExist(Request $request): Response
{
$email = $request->get('email');
$user_id = $request->get('user_id');
if (isset($email) && !empty($email)) {
if (isset($user_id) && !empty($user_id)) {
$query = $this->em->createQueryBuilder()
->select('u.id', 'u.email')
->from('App\Entity\User', 'u')
->andWhere('u.email =\'' . str_replace("'", '', $email) . '\'')
->andWhere('u.id !=' . $user_id)
->getQuery();
} else {
$query = $this->em->createQueryBuilder()
->select('u.id', 'u.email')
->from('App\Entity\User', 'u')
->where('u.email = :email')
->setParameter('email', $email)
->getQuery();
}
$email_exist = $query->getArrayResult();
if (!empty($email_exist)) {
return new response('false');
} else {
return new response('true');
}
}
return new response('true');
}
1条答案
按热度按时间j0pj023g1#
1.检查日志
1.在
success:
后添加error:
语句,可能有助于查找问题。