Javascript JQuery验证器,使用GET代替POST的远程规则?

Javascript JQuery验证器,使用GET代替POST的远程规则?,javascript,jquery,validation,jquery-validate,Javascript,Jquery,Validation,Jquery Validate,我正在尝试使用JQuery Validator进行远程验证: rules: { username: { minlength: 6, maxlength: 12, remote: { url: '/users/register/isUserAvailable', dataType: 'POST', data: {

我正在尝试使用JQuery Validator进行远程验证:

rules: {
        username: {
            minlength: 6,
            maxlength: 12,
            remote: {
                url: '/users/register/isUserAvailable',
                dataType: 'POST',
                data: {
                    'username': $('#username').val()
                },
                success: function(data) {
                    // success tasks...
                }

            }
        },
我想看看是否有一种方法可以使用GET而不是POST进行验证,使其如下所示:

rules: {
            username: {
                minlength: 6,
                maxlength: 12,
                remote: {
                    url: function(){
                        var username = $('#username').val();
                        return '/users/register/isUserAvailable/' + username,
                    } 
                    dataType: 'GET',
                    success: function(data) {
                        // success tasks...
                    }

                }
            },

注意:我知道这个帖子是安全的,目前工作正常,但是我只是想知道这是否可能。

我想这没有限制,但是您需要更改
数据类型:'GET'
对于
类型:'GET'
我想没有限制,但是您需要更改
数据类型:'GET'
对于
类型:'GET'
您的远程语法不正确,没有成功,远程服务器只需要基于您提供的数据的布尔值

remote: {
     type: 'GET',
     url: '/users/register/isUserAvailable',
     data: {
      username: function() {
        return $( "#username" ).val();
      }
            }//end remote

您的远程语法不正确,没有成功,远程只需要基于您提供的数据的布尔值

remote: {
     type: 'GET',
     url: '/users/register/isUserAvailable',
     data: {
      username: function() {
        return $( "#username" ).val();
      }
            }//end remote

示例中存在一些语法问题

  • 要从GET更改为POST,参数名称为type,而不是 数据类型
  • url参数不是作为函数计算的,它是一个字符串。这可以解释为什么会出现奇怪的字符,它们是函数的文本
  • 还有两点

  • 远程方法的默认值是GET,因此不需要指定GET的类型
  • 小心重写远程方法中的success,除非您知道远程方法的success回调的工作原理,否则不要这样做
  • 保持这样简单

    $( "#myform" ).validate({
      rules: {
        email: {
          remote: {
            url: "check-email.php",
            type: "post",
            data: {
              username: function() {
                return $( "#username" ).val();
              }
            }
          }
        }
      }
    });
    

    示例中存在一些语法问题

  • 要从GET更改为POST,参数名称为type,而不是 数据类型
  • url参数不是作为函数计算的,它是一个字符串。这可以解释为什么会出现奇怪的字符,它们是函数的文本
  • 还有两点

  • 远程方法的默认值是GET,因此不需要指定GET的类型
  • 小心重写远程方法中的success,除非您知道远程方法的success回调的工作原理,否则不要这样做
  • 保持这样简单

    $( "#myform" ).validate({
      rules: {
        email: {
          remote: {
            url: "check-email.php",
            type: "post",
            data: {
              username: function() {
                return $( "#username" ).val();
              }
            }
          }
        }
      }
    });
    

    也不起作用,这是在查询字符串中发送的内容:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20控制台。日志(用户名);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20返回%20'/users/register/isUserAvailable/';%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D?username=emanueleMaybe url不允许作为函数工作,而只允许作为变量。@Uuid:我相信
    type
    不是问题所在,并且
    GET
    是允许的。检查是否可以为远程定义指定
    data
    属性。它确实允许毫无问题地指定方法,但奇怪的是,每当我尝试在函数内返回url时,都会抛出上述属性。%20…也不工作,这是在查询字符串中发送的内容:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20控制台。日志(用户名);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20返回%20'/users/register/isUserAvailable/';%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D?username=emanueleMaybe url不允许作为函数工作,而只允许作为变量。@Uuid:我相信
    type
    不是问题所在,并且
    GET
    是允许的。检查是否可以为远程定义指定
    data
    属性。它确实允许毫无问题地指定方法,但奇怪的是,每当我尝试在函数内返回url时,都会抛出上述属性。%20...