AJAX回顾, JSON, JQUERY AJAX

目录

1.AJAX回顾

2.JSON

    3.后台处理JSON

3.JQUERY AJAX

1.AJAX回顾

    1.AJAX : 异步的JS和XML
    2.异步对象 
        XMLHttpRequest
      成员:
          1.open(method,url,asyn) 
              创建请求
          2.readyState
              xhr的请求状态
              0-4 : 4表示的是已经接收响应
          3.status
              服务器端响应状态
              200 : 表示服务器正常接收请求并给出响应
          4.responseText
              表示的是响应回来的数据
          5.onreadystatechange
              每当readyState的值发生变化的时候要回来调用的函数 - 回调函数
          6.send()
              发送请求
              get请求 :send(null)
              post请求:send("参数=值1&参数2=值2")
          7.setRequestHeader(name,content)
              设置请求消息头
              发送post请求时:
              xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
    3.使用 ajax 发送get请求
        1.创建 xhr
        2.创建 请求
            请求参数要在url中体现出来
        3.设置 回调函数
        4.发送 请求
    4.使用 ajax 发送 post 请求
        1.创建 xhr
        2.创建 请求
        3.设置 回调函数
        4.设置 Content-Type 请求消息头
        5.发送 请求
            一定要传递 csrfmiddlewaretoken 的值到服务器端

    练习:
        1.创建数据库 - ajax
        2.创建 Models - User
            uname - 用户名
            upwd - 密码
            uphone - 电话号
            uemail - 电子邮件

2.JSON

    1.JSON介绍
        JSON:JavaScript Object Notation
             JS         对象   表现形式
         将复杂的数据按照JS对象的格式进行响应
    2.JSON表现
        1.JSON可以表示单个对象
            1.使用 {} 表示单个对象
            2.在{}中,使用key:value的形式来表示数据(属性)
            3.key必须使用""引起来
            4.value如果是字符串的话,也必须使用""引起来
            var obj = {
                "name":"范冰冰",
                "age":40,
                "gender":"女"
            }
        2.JSON可以表示一个数组
            1.使用[]表示一个数组
            2.在数组中允许包含若干普通数据 或 JSON对象
                1.使用JSON数组表示普通数据
                    var arr = ["范冰冰","李晨","洪金宝"];
                2.使用JSON数组表示若干对象
                    var arr = [
                        {
                            "name":"范冰冰",
                            "age":40,
                            "gender":"女"
                        },
                        {
                            "name":"李晨",
                            "age":43,
                            "gender":"男"
                        }
                    ];

    3.后台处理JSON

        1.前后台JSON数据交互流程(后->前)
            1.后台先获取数据
                类型:
                    1.元祖
                    2.列表
                    3.字典
                    4.QuerySet
            2.在后台将数据转换为符合JSON格式的字符串
            3.在后台将JSON格式的字符串响应给前端
                return HttpResponse(JSON格式字符串)
            4.在前端,将响应回来的JSON串解析成JSON对象
        2.Python(Django)中的JSON处理
            1.元组,列表,字典
                使用 Python 提供的json类就可以完成转换
                import json
                jsonStr=json.dumps(元组|列表|字典)
            2.Django中的查询结果集 - QuerySet
                使用 Django 提供的 序列化类 完成 QuerySet到 JSON字符串的转换

                from django.core import serializers
                jsonStr=serializers.serialize('json',QuerySet)
            3.Django中查询单个对象
                使用 Entry.objects.get(条件) 查询单条数据
                是不允许被序列化成JSON格式的
                1.方案1
                    使用Entry.objects.filter()来替换Entry.objects.get(),替换后则可以正常序列化
                2.方案2
                    将 Entry.objects.get() 转换成字典后再json.dumps()

                    class User(models.Model):
                        uname = models.CharFiled()
                        upwd = models.CharFiled()
                        uphone = models.CharField()
                        uemail = models.CharField()

                        def to_dict(self):
                            dic={
                                "uname":self.uname,
                                "upwd":self.upwd,
                                "uphone":self.uphone,
                                "uemail":self.uemail
                            }
                            return dic
        3.前端处理JSON
            将后端响应回来的JSON字符串转换成JSON对象\
            在JS中:
                var JSON对象=JSON.parse(JSON字符串);

3.JQUERY AJAX

    在 jquery 中提供了对 原生ajax 的封装操作
    1.$obj.load()
        作用:异步加载数据到$obj元素中
        语法:$obj.load(url,data,callback)
            1.url:异步请求的地址
            2.data:传递给服务器端的数据(可选)
                1.可以传递普通的字符串
                    "name=sf.zh&age=85"
                2.可以传递JSON
                    {
                        "name":"sf.zh",
                        "age":85
                    }
            3.callback:异步请求完成后的回调函数
                function(resText,statusText){
                    resText : 响应数据
                    statusText : 响应的状态文本
                }

1. $.get(url,data,callback,type)
    1.url:异步请求的地址
    2.data:请求提交的参数
    3.callback:请求成功时的回调函数
        function(data){
            data:表示的是响应回来的数据
        }
    4.type:指定返回内容的格式类型
        1.html:响应回来的内容是html文本
        2.text:响应回来的内容是text文本
        3.json:响应回来的内容是json对象

2.$.post(url,data,callback,type)

3.$.ajax()
    特点:所有的操作都可以自己定制
    语法:$.ajax({JSON对象});
        JSON对象:
            1.url:字符串,要异步请求的地址
            2.type:字符串,提交方式,get或post
            3.data:JSON对象或字符串,要传递到后台服务器的参数
            4.dataType:字符串,指定响应回来的数据的类型
                1.'html':响应回来的数据是html文本
                2.'text':响应回来的数据是text文本
                3.'script':响应回来的数据是javascript代码片段
                4.'json':响应回来的数据是JSON对象
                5.'xml':响应回来的数据是xml文档
                6.'jsonp':JSONP格式,跨域时使用
            5.success:请求和响应成功时的回调函数
                success:function(data,textStatus){
                    data:响应数据
                    textStatus:响应状态文本
                }
            6.error:请求和响应出错时的回调函数
                error:function(xhr,textstatus){
                    xhr:异步请求对象
                    textStatus:响应状态文本
                }
            7.async:指定是否是异步方式
                true:使用异步方式
                false:使用同步方式 

猜你喜欢

转载自blog.csdn.net/zh__quan/article/details/82624094