Ajax技术使用补充
Ajax技术使用补充
一、Ajax发送数据的几种形式
发送字符串或数字
$.ajax({ url:"/ajax_test.html/", type:'POST', data:{'v1':1,'v2':2},
dataType:'JSON', success:function(arg){ console.log(arg); } })
发送数组
v=[1,2,3,4]
加上traditional参数,可以发送数组,经常用在多选框。
$.ajax({ url:"/ajax_test.html/", type:'POST', data:{'list':v},
dataType:'JSON', traditional:true, success:function(arg){ console.log(arg); } })
发送字典
dict={'k1':1,'k2':2}
将字典转为字符串串进行发送
$.ajax({ url:"/ajax_test.html/", type:'POST', data:{'dict':JSON.stringify(dict)}, dataType:'JSON', success:function(arg){ console.log(arg); } })
关键参数解析:
dataType:'JSON':服务端返回序列化的数据时,ajax自动进行反序列化。
traditional:我们可以通过设置traditional 为true阻止深度序列化,然后序列化结果如下:
list: [1,2,3,4] => list:list=1&list=2&list=3&list=4
二、示例
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> {%load staticfiles%} <script src="{% static '/js/jquery/jquery-3.3.1.js' %}"></script> <title>Title</title> </head> <body> <select id="Click" multiple> <option value="老师1">1</option> <option value="老师2">2</option> <option value="老师3">3</option> <option value="老师4">4</option> </select> <br> <input type="submit" id="Btntest"> <script> $(function(){ bindEvent(); }); <!--#绑定函数--> function bindEvent(){ $('#Btntest').click(function(){ var v=$('#Click').val(); console.log(v) $.ajax({ url:"/ajax_test.html/", type:'POST', data:{'list':v}, traditional:true, success:function(arg){ console.log(arg); } }) } )} </script> </body> </html>
视图函数:
def ajax_test(request): value=request.POST.getlist('list') print(value) return render(request,"ajax_test.html")
选择1,2,3