分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

django中ajax的使用

发布时间:2023-09-06 02:34责任编辑:白小东关键词:django

ajax(Asynchronous Javascript And Xml) 异步javascript和XML

ajax的优点

使用javascript技术向服务器发送异步请求

ajax无须刷新整个页面;

由于ajax相应的是局部页面,因此性能要高

当以get的方式向服务器发送请求:

views.py
def user_valid(request): ???name=request.GET.get("name") ???ret=Author.objects.filter(name=name) ???res={"state":True,"msg":""} ???if ret: ???????res["state"]=False ???????res["msg"]="用户存在" ???import json ???return HttpResponse(json.dumps(res)) #向ajax发送json数据
<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>Title</title></head><body><p>ajax请求</p><button class="s1">send_ajax</button><p class="con"></p><hr><p>用户名:<input type="text" id="user"><span class="error"></span></p><script src="/static/js/jquery-3.3.1.min.js"></script><script> ???$(".s1").click(function(){ ???????$.ajax({ ???????????url:"/send_ajax/", ???????????type:"get", ???????????data:{}, ???????????success:function(data){ ???????????????$(".con").html(data) ???????????} ???????}) ???}); ????$("#user").blur(function () { ????//鼠标失去焦点事件 ???????$.ajax({ ???????????url: "/user_valid/", ???????????type: "get", ???????????data: {"name": $("#user").val()}, ???????????success: function (data) { ???????????????console.log(data); ???????????????console.log(typeof data); ???????????????var data = JSON.parse(data); //接收传来的信息,进行反序列化 ???????????????console.log(data); ???????????????console.log(typeof data); ???????????????if (!data.state) { ???????????????????$(".error").html(data.msg).css("color", "red") #这里的css样式是以,隔开的 ???????????????} ???????????} ???????}) ???});</script></body></html>

 下面是以post的方式提交,并且跨域伪造csrf的方式(三种)

def user_valid(request): ?????name = request.POST.get("name") ???ret=Author.objects.filter(name=name) ???res={"state":True,"msg":""} ???if ret: ???????res["state"]=False ???????res["msg"]="用户存在" ???import json ???return HttpResponse(json.dumps(res))
<!DOCTYPE html><html lang="en"><head> ???<meta charset="UTF-8"> ???<title>Title</title></head><body><p>ajax请求</p><button class="s1">send_ajax</button><p class="con"></p><hr>{% csrf_token %} #方式一<p>用户名:<input type="text" id="user"><span class="error"></span></p><script src="/static/js/jquery-3.3.1.min.js"></script><script> ???$(".s1").click(function(){ ???????$.ajax({ ???????????url:"/send_ajax/", ???????????type:"get", ???????????data:{}, ???????????success:function(data){ ???????????????$(".con").html(data) ???????????} ???????}) ???}); ??//下面改成post请求如何避免crsf错误呢 ????????$("#user").blur(function () { ???????$.ajax({ ???????????url: "/user_valid/", ???????????type: "post", ???????????data: {"name": $("#user").val(), ???????????????"csrfmiddlewaretoken":$("[name=‘csrfmiddlewaretoken‘]").val(), //方式二
       headers:{"X-CSRFToken":$.cookie(‘csrftoken‘)}, ??//方式三 ???????????},
        ???????????success: function (data) { ???????????????console.log(data); ???????????????console.log(typeof data); ???????????????var data = JSON.parse(data); ???????????????console.log(data); ???????????????console.log(typeof data); ???????????????if (!data.state) { ???????????????????$(".error").html(data.msg).css("color", "red") ???????????????} ???????????} ???????}) ???});</script></body></html>

 下面是效果

django中ajax的使用

原文地址:https://www.cnblogs.com/mmyy-blog/p/10512361.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved