javaEE-Ajax

1、Ajax简介

Ajax 全称为:"Asynchronous JavaScript and XML "(异步JavaScript 和XML),使用Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提升了用户体验。
Ajax 其实质是利用浏览器提供的一个特殊的对象(XMLHttpRequest)异步地向服务器发送请求。
服务器返回部分数据,浏览器让你去利用这些数据对页面做部分的更新,整个过程,页面无刷新,不打断用户的操作。

2、创建XMLHttpRequest对象

发送请求到服务器并获得返回结果, new XMLHttpRequest();
JavaScript对象XMLHttpRequest是整个Ajax技术的核心,它提供了异步发送请求的能力
常用方法:

方法名说明
open(method,URL, async)建立与服务器的连接 method 参数指定请求的HTTP方法,典型的值是GET 或POST URL 参数指定请求的地址 async参数指定是否使用异步请求,其值为true或false
send(content)发送请求 content 参数指定请求的参数
setRequestHeader(header,value)设置请求的头信息

常用属性:
onreadystatechange: 事件,指定回调函数
readystate:XMLHttpRequest的状态信息

就绪状态码说明
0没有完成初始化
1开始发送请求
2请求发送完成
3对象开始读取响应,还没有结束
4读取响应结束

常用属性
status:HTTP的状态码

状态码说明
200服务器响应正常
400无法找到请求的资源
403没有访问权限
404访问的资源不存在
500服务器内部错误

3、Get方式/Post方式

Get方式提交:
xmlhttp.open(“GET”,“testServlet?name=”+userName,true);
xmlhttp.send(null);
Post方式提交:
xmlhttp.open(“POST”,“testServlet”,true);
POST方式需要自己设置http的请求头
xmlhttp.setRequestHeader(“Content-Type”,“application/x-www-form-urlencoded”);
POST方式发送数据
xmlhttp.send(“name=”+username);

4、JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式
数据在键值对中
数据由逗号分隔
大括号保存对象
方括号保存数组
语法:
JSON键值对是用来保存JS对象的一种方式,和JS对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号" " 包裹,使用冒号:分割,然后紧接着值:
{“firstName”:“John”}
{“name”:“value”,“sex”:“男”}

5、Java对象转JSON

在异步交换数据时,java对象不能直接被传递给js,所以需要先把java对象转换为JSON格式字符串,把字符串响应给客户端,再由客户端将JSON字符串转换为js对象即可($.parseJSON(jsonstr))。

6、Jquery实现AJAX-$.get()

$.get() 是一个简单的GET请求功能。请求成功时可调用回调函数。
$.get(url,[data],[callback],[type])
url:发送请求地址
data:待发送 Key/value 参数
callback:发送成功时回调函数
type:返回内容格式,xml,html,script,json,text_default

7、Jquery实现AJAX-$.post()

$.post() 是一个简单的POST请求功能。请求成功时可调用回调函数。
$.post(url,[data],[callback],[type])
url:发送请求地址
data:待发送 Key/value 参数
callback:发送成功时回调函数
type:返回内容格式,xml,html,script,json,text_default
POST请求时HTTP 消息实体提交的,提交大小不受限制
$("#testform").serialize() 请求发送表单数据

未封装版

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script type="text/javascript">
        function  subform(){
            var  account =document.getElementById("accountId").value;
            var  password =document.getElementById("passwordId").value;
            //表单验证
            //使用XMLhttprequest
            var httpobj=new XMLHttpRequest();
            httpobj.open("post","login","true");
            httpobj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
            httpobj.send("account="+account+"&password="+password);
            //接收服务器端的数据,当发送请求之后,会触发onreadystatechange事件
            httpobj.onreadystatechange=function (){
                //当对象就绪状态为4,响应内容为200
                if (httpobj.readyState==4&&httpobj.status==200){
                    //alert(httpobj.responseText);
                    location.replace(sucsess.html);
                   // document.getElementById("spanid").innerHTML=httpobj.responseText;
                }
            }

        }
    </script>

</head>
<body>
        <!-- ajax 提交数据,返回交给XMLhttpRequest请求,从前端向后端进行发起请求交互,异步
        当客户端与服务器交互时,服务器向客户端响应内容,不影响内容正常操作,局部刷新。-->
        <form method="post" action="login">
            账号:<input type="text" name="account" id="accountId">
            密码:<input type="password" name="password" id="passwordId">
            <input type="button" value="登录" onclick="subform()">
            <span id="spanid"></span>
        </form>
        <a href="registerX.html" >注册</a>
</body>
</html>

封装版

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function  subform(){
            $.post("back/login",$("#formId").serialize(),function(res){
                var obj =$.parseJSON(res);
                if (obj!=null){
                    alert("登录成功");
                    window.sessionStorage.setItem("user",res);
                    location.replace("sucsess.html");
                }else {
                    alert("登录失败");
                }
            });
        }

    </script>

</head>
<body>
        <form  id="formId">
            账号:<input type="text" name="account" >
            密码:<input type="password" name="password" >
            <input type="button" value="登录" onclick="subform()">
            <!-- <span id="spanid"></span>-->
        </form>
        <a href="register.html" >注册</a>
</body>
</html>

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值