美文网首页
Ajax:$.get() 从服务器请求数据

Ajax:$.get() 从服务器请求数据

作者: 流蓝浅 | 来源:发表于2018-04-19 10:41 被阅读0次

通过 HTTP GET 请求从服务器上请求数据。

必需的 URL 参数规定您希望请求的 URL。

可选的 callback 参数是请求成功后所执行的函数名。

   $("button").click(function()
  {$.get("demo_test.php",function(data,status){ alert("数据: 

   " + data + "\ n 状态: " + status); }); }); 
范例:验证用户名是否存在
1、模版 

<!DOCTYPE html> 

<html> 

<head> 

<meta charset="utf-8"> 

<title >ajax 教程</title > 

<script src="/static/jquery-1.12.4.min.js"> 

</script> 

<script> 

$(function(){ 
  $('#user_name').blur(function () { 

           var len = $('#user_name').val().length; 

           if (len < 5 || len > 20) { 

                $('#user_name').next().html('请输入 5-20 个字符的用户名') 

                $('#user_name').next().show(); 

                error_name = true; 

           } 

           else { 

                $.get('/user_exist/?uname=' + $('#user_name').val(), function (data) { 

                      if (data.count == 1) { 

                           $('#user_name').next().html('用户名已经存在').show(); 

                           error_name = true; 

                      } else { 

                           $('#user_name').next().hide(); 

                           error_name = false; 

                      } 

                }); 

           } 

     }); 

  }); 

</script > 

</head> 
<body> 

<form action='/register_handle/' method='post'> 

   {%csrf_token%} 

     <label>用户名:</label> 

    <input type="text" name="user_name" id="user_name"> 

    <span style="color:#ff0000;"></span> 

</form > 

</body> 

</html> 

视图函数

def gettest(request): 

    return render(request, 'ajaxtest/gettest.html') 

def user_exist(request): 

    uname = request.GET.get('uname') 

     print('register_exist:' + uname) 

    count = 0 

    try: 

         count = UserInfo.objects.filter(nickname=uname).count() 

    except Exception as e: 

         print(e) 

    print('register_exist:'+str(count)) 

    return JsonResponse({'count':count}) 

最后配置url

改造过的:
js代码:
    phone.blur(function(){
            var 
                reg1=/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/,
                oI=phone.siblings().find('i');
            if(!phone.val()){
                oI.html('手机号不能为空')
                return false;
            }else if(!reg1.test(phone.val())){
                oI.html('手机号不合法')
                return false;
            }else{
                    $.get('/cosme/user_exist/?username=' + phone.val(), function (data) {
                      // alert(data.count)
                      if (data.count == 1) {

                         oI.html('用户名已经存在').show();
                         return false;

                      } else {
                        oI.html('手机号正确')
                         // alert(data.count)
                         return false;

                      }

                });


            }
        })

视图函数:


def user_exist(request):
    # 获取用户名
    username = request.GET["username"]
    print("username :"+username)
    count = 0 # 记录条数0
    try:
        list = User.objects.filter(username=username)
        # print(list)
        count = list.count()
        # get 会报错,filter不会报错
    except Exception as e:
        print(e)
    # print(count)
    return JsonResponse({"count": count})

最后路径配置
前端中使用
注意,js中使用的参数,以及路径问题

相关文章

网友评论

      本文标题:Ajax:$.get() 从服务器请求数据

      本文链接:https://www.haomeiwen.com/subject/mfoikftx.html