【问题标题】:jQuery Ajax get json returned resultjQuery Ajax 获取 json 返回结果
【发布时间】:2018-06-05 13:40:40
【问题描述】:

我想在 Ajax 请求中获取 php 函数的返回结果,以便在 onSucces 中进行一些验证。如何将 php 函数的 JSON 结果放入 ajax 请求中?

public function verifyEmailAction()
{
    $is_valid = true;
    $is_duplicate = false;
    $email_reset = false;

    $register = $this->getRegisterHelper();
    $register->addEmailCheck();
    $register->setData($this->getAllParams());
    $validationErr = $register->getValidationResult();

    if (!empty($validationErr['badWords']['email']) || $validationErr['banned']['email'] == true
        || empty($validationErr['isEmailValid'])
    ) {
        $is_valid = false;
    } elseif (!empty($validationErr['duplicates']['email'])) {
        $is_duplicate = true;
        $email_reset = $this->sendResetEmail();
    }
    $result = [
      'duplicate' => $is_duplicate,
      'valid' => $is_valid,
      'reset' => $email_reset
    ];

    $this->getResponse()->setBody(json_encode($result));
}




jQuery.validator.addMethod("checkDuplicate", function (value, element) {
        jQuery.ajax({
            type: 'GET',
            url: '/user/register/verify-email.ajax',
            data: {
                'email': value
            }
        });
    });

【问题讨论】:

标签: php jquery json ajax


【解决方案1】:
 jQuery.ajax({
            type: 'GET',
            url: '/user/register/verify-email.ajax',
            data: {
                'email': value
            },
            dataType:'json',
            success:function(response){
               console.log(response);
               var duplicate=response.duplicate;
               var valid=response.valid;
               var reset=response.reset;
            },
            error:function(err){
               console.log('Error '+err);
            }
        });

【讨论】:

    【解决方案2】:

    你需要使用如下的成功和错误函数,

    jQuery.validator.addMethod("checkDuplicate", function (value, element) {
            jQuery.ajax({
                type: 'GET',
                url: '/user/register/verify-email.ajax',
                data: {
                    'email': value
                },
                success : function(data, status, xhr) {
                    console.log(JSON.stringify(data));
                },
                error: function(jqXhr, textStatus, errorMessage){
                      console.log("ERROR " + errorMessage);
                }
            });
        });
    

    【讨论】:

      【解决方案3】:
      $.ajax({
        type: 'GET',
        url: url,
        data: {
         'email': value
        },
        dataType:'json',
        }).success(function(response){ 
              //YOUR Json KEY
              if(response.success){
              }            
      });
      

      【讨论】:

        【解决方案4】:

        希望这篇文章对你有所帮助。 http://api.jquery.com/jquery.ajax/

        特别是你可以使用这个

        jQuery.ajax({
          url: "YOURURL",
          type: "YOURTYPE",
          dataType:"json",
        }).done(function(data) {
          console.log(data) // to see the reqested data
          // manipulate data here
        });
        

        【讨论】:

          【解决方案5】:

          添加dataType:'json':

          jQuery.validator.addMethod("checkDuplicate", function (value, element) {
                  jQuery.ajax({
                      type: 'GET',
                      url: '/user/register/verify-email.ajax',
                      data: {
                          'email': value
                      },
                      dataType:'json'
                  });
              });
          

          您可以使用它来将 JSON 字符串转换为 JavaScript 对象:

          var txtReturned = JSON.parse(data);
          

          参考:

          【讨论】:

            猜你喜欢
            • 2022-07-11
            • 1970-01-01
            • 1970-01-01
            • 2013-08-10
            • 2011-11-18
            • 2011-07-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多