Day02Ajax post请求

  1. ajax操作中以post方式提交异步请求

a) 创建xhr

var xhr = new XMLHttpRequest();

b) 发送请求

xhr.open("post","url");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");//在post请求中有这句话,get请求中没有,此为二者的区别。
xhr.send("name=suns&password=123456&…");

解释: 为什么在post方式提交数据时 需要指定 application/xxxx…?
答案:

<form method="post" action="" enctype="application/x-www-form-urlencoded">
    <input type="text" name="name"/>
    ……
</form>

表单中默认有enctype属性,只有有这个enctype属性,才可以使用request.getParameter(“name”)获取到name的值。
若做文件上传,则enctype=”multipart/form-data”

在xhr操作中 没有了form 就没有enctype属性, 所以必须手工设置
c) 处理响应

xhr.onreadystatechange = function(){
   if(xhr.readySate==4 && xhr.status==200){
     xhr.responseText;
   }
}

实例代码

//首先需要引入jquery-1.8.3.js插件,放在WebContent下面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" src="jquery-1.8.3.js"></script>
    <script type="text/javascript">
        $(function(){
            //当name丢失焦点时调用此函数
            $("#name").blur(function(){

                //1.获得文本框中的内容
                var name = $(this).val();

                //2.发送ajax异步请求
                var xhr;
                if(window.XMLHttpRequest){
                    xhr = new XMLHttpRequest();
                }else{
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }

                xhr.open("post","CheckName");
               xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
                xhr.send("name="+name);

                //xhr处理相应
                xhr.onreadystatechange = function(){
                    if(xhr.readyState == 4 && xhr.status == 200){
                        /* alert(xhr.responseText); */
                        $("#msg").text(xhr.responseText);
                        }       
                    });
                });
            });
</script>

<title>注册</title>
</head>
<body>
    <table>
        <tr>
            <td>UserName</td>
            <td><input type="text" name="name" id="name"/><span id="msg"></span></td>
        </tr>
        <tr>
            <td>UserPassword</td>
            <td><input type="text" name="password" id="password"/><span id="msg"></span></td>
        </tr>
        <tr>
            <td>UserEmail</td>
            <td><input type="text" name="email" id="email"/><span id="msg"></span></td>
        </tr>
        <tr>
            <td><input type="button" value="注册"/></td>
        </tr>
    </table>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值