php 即使状态为200,也无法在服务器上获得 AJAX 响应

5fjcxozz  于 2023-02-03  发布在  PHP
关注(0)|答案(1)|浏览(144)

我已经添加了一个模糊的输入和点击提交按钮,以验证电子邮件存在或不 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');
    }
j0pj023g

j0pj023g1#

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;
                  }
                },
                // add this
                error: function (request, status, error) {
                    alert(request.responseText); // <-- your code will be here
                }
             })

1.检查日志
1.在success:后添加error:语句,可能有助于查找问题。

相关问题