zoukankan      html  css  js  c++  java
  • http---ajax

    b/s:浏览器请求服务器。c/s:是客户端请求服务器。

    xml:可拓展标记语言。缺点,解析复杂,体积大。

    html:超文本标记语言。

    共同点:1,都是标记语言,都要使用标签进行标记。

        2,语法格式类似。

    区别:1,html:是预定义。xml:是完全自定义。

       2,作用不同:

        html:是展示数据。

        xml:是存储和传输数据。

    http:超文本传输协议,是一种详细规定浏览器和服务器通信的规则,http分为请求和响应二个部分组成。

    请求报文格式:1,请求行。2,请求头。3,请求主体。(post请求方式:请求行,是请求方式请求地址,协议版本。请求头:记录了浏览器相关信息发送给服务器。post请求要配上content-type属性。请求体:是前端传给后台的核心数据。)

    响应报文格式:1,响应行。2,响应头。3,响应主体。(响应报文,状态行:协议版本,状态码,状态文本。响应头:服务器处理时间,服务器版本协议,后台编程语言版本,内容长度,返回的内容类型。响应体:服务器返回浏览器的核心内容。)

    get请求和post请求的区别:get请求没有请求体,请求内容已经在请求行中。post请求必须设置content-type属性,get请求报文不用设置。

    ajax:特点在不更新页面的情况下,请求数据,局部更新页面的数据。本质在http协议的基础上,以异步方式利用js与服务器通信。

    button.onclick = function() {

      var xhl = new XMLHttpRequest();

      //1,设置请求报文

      //请求行

      //第一个参数是请求方式,第二个参数是地址

      //ajax是异步的,也可以设置同步,open第三个参数默认是true,设为false就是同步。

      xhr.open('get', 'url')

      //请求头

      xhr.setRequestHeader('content-type', 'text,html')

      //请求主体send()发送

      xhr.send(null)

      //2,接收服务器返回的响应

      //请求发出后,服务器何时响应,受外界因素影响时间不确定

      //解决方案用事件监听onload()

      xhr.onload = function () {

      var r = responseText

      console.log(r)

      docment.querySelector('div').innerText = r

      }

    }

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


    // 1- 点击注册按钮, 获取表单数据,校验表单数据是否合理, 在数据合理的情况下请求服务器 进行注册
    // 2- 接收后台返回的注册结果 并显示;
    $('.btn').click(function (){
    // 获取表单数据
    // var name = $('.name').val();
    // var pass = $('.pass').val();
    // var repass = $('.repass').val();
    // // 对象 查询字符串
    // var str = 'name='+ name +'&pass=' + pass + '&...'
    // jquery提供 表单序列化 可以快速获取表单
    // name=123&pass=123&repass=123&mobile=123&code=123
    // 表单序列化:把表单 name属性 和value属性进行拼接;
    var str = $('#ajaxForm').serialize();
    console.log(str);

    // $.ajax() 终止请求 return false;

    // ajax框架
    $.ajax({
    type: 'post',
    url: './register.php',
    data: str,
    dataType:'json',
    beforeSend:function () { // 请求发送前
    // 做数据校验,如何数据不合理,到此结束
    // 1- 用户名不能为空
    // 2- 密码长度大于等于6
    // 3- 两次密码一致
    // 4- 手机号格式 1开头的11数字 正则
    // 5- 验证码:长度为4

    // 1- 用户名不能为空
    if ($('.name').val().trim().length == 0) {
    // 提示
    $('.tips p').fadeIn(500).delay(1000).fadeOut(500).text('亲,用户名不能为空哦');
    // 终止请求
    return false;
    }

    // // 2- 密码长度大于等于6
    // if ($('.pass').val().length < 6) {
    // // 提示
    // $('.tips p').fadeIn(500).delay(1000).fadeOut(500).text('亲,密码不能小于6位哦');
    // // 终止请求
    // return false;
    // }

    // // 3- 两次密码一致
    // if ($('.pass').val() != $('.repass').val()) {
    // // 提示
    // $('.tips p').fadeIn(500).delay(1000).fadeOut(500).text('亲,两次密码不一致哦');
    // // 终止请求
    // return false;
    // }
    // // 4- 手机号格式 1开头的11数字 正则
    // var telReg = /^1d{10}$/;
    // var tel = $('.mobile').val();
    // if ( !telReg.test(tel) ) {
    // // 提示
    // $('.tips p').fadeIn(500).delay(1000).fadeOut(500).text('亲,手机号错误哦!');
    // // 终止请求
    // return false;
    // }

    // // 5- 验证码:长度为4
    // if ($('.code').val().length != 4) {
    // // 提示
    // $('.tips p').fadeIn(500).delay(1000).fadeOut(500).text('亲,验证码错误哦');
    // // 终止请求
    // return false;
    // }

    // 代码能执行到此,说明 以上所有 校验都通过了, 数据是合理的
    // 给用户提示 按钮变色 文字提示 禁用按钮
    $('.btn').addClass('gray').val('正在注册...').prop('disabled', true);


    },
    success: function (res) { // 请求成功时
    console.log(res);
    if (res.code == 200) {
    alert(res.msg);
    }
    },
    error:function (){ // 请求失败时

    },
    complete: function () { // 请求完成执行
    // 恢复按钮的样式 ,启用按钮
    $('.btn').removeClass('gray').val('立即注册').prop('disabled', false);
    }
    })

    });

  • 相关阅读:
    Myeclipse快捷键
    Resharper 的快捷键
    jQuery模块自由组合方案
    CTE
    Nhibernate3以上单元测试
    第三方控件下载篇
    10 个 Visual Studio 原生开发的调试技巧
    Nhibernate为hbm.xml配置文件添加智能提示(VS2010)
    Win7下nginx默认80端口被System占用
    Nginx本地配置
  • 原文地址:https://www.cnblogs.com/xiaoxiao95/p/12995069.html
Copyright © 2011-2022 走看看