• 什么是XMLHttpRequest?

    • XMLHttpRequest对象用于在后台与服务器交换数据
  • XMLHttpRequst的作用
    • 在不重新加载页面的情况下更新网页 
    • 在页面已加载后从服务器请求数据
    • 在页面已加载后从服务器接收数据
    • 在后台向服务器发送数据
  • 若出现Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.
    • 设置请求头必须在open打开之后,send之前
  • JS实现异步提交
    <!--
    onchange触发事件必须满足两个条件:
    (1)当前对象属性发生改变
    (2)当前对象失去焦点
    -->
    <input type="text" name="username" id="username" placeholder="请输入用户名" >
    
    
    var username = document.getElementById("username");
    /**
    * 获取XMLHttpRequestObject对象
    */
    function getXMLHttpRequestObject(url, param) {
    //创建XMLHttpRequest对象
    var xmlhttp;
    //为了应对所有现代浏览器,检查是否支持XMLHttpRequst,若支持则创建XMLHttpRequest对象,若不支持,则创建ActiveXObject对象
    if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest(); } else {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    //规定请求的类型、URL、是否异步请求
    xmlhttp.open('get', url + '?' + param, true);
    //添加请求头必须在open打开之后,send之前
    //想请求添加Http请求头
    xmlhttp.setRequestHeader("Context-type", "application/x-www-form-urlencoded");
    //将请求发送到服务器
    xmlhttp.send(); return xmlhttp;
    }
    
    
    /**
    * 验证用户名
    */
    username.onchange = function () { var usernameValue = username.value;
    var param = "username=" + usernameValue
    var url = "/register";
    var xmlhttp = getXMLHttpRequestObject(url, param);
    //设置监听函数,若为true时,在事件中的就绪状态时执行函数
    xmlhttp.onreadystatechange = function () {
    //判断请求是否成功,每当readyState属性改变时,就会调用该函数
    //readyState的状态:0(请求未初始化)、1(服务器连接已建立)、2(请求已接收)、3(请求处理中)、4(请求已完成,且响应已就绪)
    //status的状态:200(ok),404(未找到页面)
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { //获取服务器的响应,通过
    //responseText:获取字符串形式的响应数据
    //responseXML:获取XML形式的响应数据
    console.log(xmlhttp.responseText);
    }
    } }
    
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String username = req.getParameter("username");
    resp.setContentType("text/html;charset=utf-8");
    PrintWriter out = resp.getWriter();
    out.println("我已经收到你的来信了");
    }
     

 

 

JS实现异步提交的更多相关文章

  1. jquery.form.js 使用以及问题(表单异步提交)

    标注:我引用的js后报错 原因:是引用的js有冲突 我引用了两便jQuery: 转载:https://blog.csdn.net/cplvfx/article/details/80455485 使用方 ...

  2. jQuery.Form.js 异步提交表单使用总结

    jQuery.Form.js 是一个用于使用jQuery异步提交表单的插件,它使用方法简单,支持同步和异步两种方式提交. 第一步:引入jQuery与jQuery.Form.js <script ...

  3. 原生js实现ajax的文件异步提交功能、图片预览功能.实例

    采用html5使得选择图片改变时,预览框中图片随之改变.input文件选择框美化.原生js完成文件异步提交 效果图: 代码如下,可直接复制并保存为html文件打开查看效果 <html> & ...

  4. 使用jQuery.form插件,实现完美的表单异步提交

    传送门:异步编程系列目录…… 时间真快,转眼一个月快结束了,一个月没写博客了!手开始生了,怎么开始呢…… 示例下载:使用jQuery.form插件,实现完美的表单异步提交.rar 月份的尾巴,今天的主 ...

  5. 使用jQuery,实现完美的表单异步提交

    jQuery异步提交表单 <form id="form1" method="post"> <table border="1" ...

  6. ASP.NET MVC 网站开发总结(五)——Ajax异步提交表单之检查验证码

    首先提出一个问题:在做网站开发的时候,用到了验证码来防止恶意提交表单,那么要如何实现当验证码错误时,只是刷新一下验证码,而其它填写的信息不改变? 先说一下为什么有这个需求:以提交注册信息页面为例,一般 ...

  7. submit异步提交 回调的方法

    背景: mvc模式下,当submit表单的时候,后台Control自动绑定Model类,但是如果不用submit来提交,改用ajax提交的时候,后台Control无法获取前台form表单内相应Name ...

  8. JQuery异步提交

    JQuery提交部分 $.ajax({ url:'www.baidu.com', //提交的地址,相当于form的action type:'POST', //提交方式,相当于form的method d ...

  9. ueditor+asp.net异步提交,可以实现了,嘿嘿

    之前没用过Ueditor去异步提交,最近项目需要用到这个,就下了个来用,结果可能没仔细去看Ueditor的相关介绍文档,然后自己也郁闷了一下才把它弄出来,现在可以实现异步提交了,松口气,把代码贴出来, ...

随机推荐

  1. [W3bsafe]分享一个爬SQL注入漏洞的工具

    分享一个爬SQL注入的工具 本文转自:i春秋社区由团队核心成员若间开发把工具放到E盘的一个文件夹 他会自动生成一个文本文件 Result.txt  最大页数 自己想弄填多少就填多少关键词 注入点关键词 ...

  2. Android MediaPlayer SeekTo 在 8.0 版本上优化说明

    android使用 mediaPlayer 播放video视频过程中, 当用户退出当前播放,再从后台恢复播放时,需要跳转到之前退出的时间点继续播放.使用的方法基本都是 SeekTo 之前的时间点,但是 ...

  3. PackageManager整理

    一.PackageManager的功能 1.安装.卸载应用.2.查询permission相关信息.3.查询Application相关信息(application,activity,receiver,s ...

  4. PHP7 ?:和??的区别

    ?:和??是PHP添加的新特性,我们可以通过下面的代码来理解 $z = $x ?? $y; //等价于下面 $z = isset($x) ? $x : $y; $z = $x ?: $y; //等价于 ...

  5. Kali学习笔记15:防火墙识别、负载均衡识别、WAF识别

    防火墙简单的识别方式: 如图: 可以简单明了看出:发送SYN不回应,发送ACK回RST可以说明开启过滤等等 基于这个原理,我们可以写一个脚本来对防火墙来探测和识别: #!/usr/bin/python ...

  6. eureka相关异常

    1. eureka相关异常 1.1. 异常信息 Error creating bean with name 'eurekaAutoServiceRegistration': Singleton bea ...

  7. 使用PageHepler分页

    首先需要引入依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>p ...

  8. maven的标准pom.xml详解

    maven是构建和管理理项目的利器,pom.xml 是其核心.一个标准的pom.xml该怎么写?其中的标签又有什么意义?话不多说,请看代码: <?xml version="1.0&qu ...

  9. React 实现一个时钟

    最终效果 其实主要难点在于最左边的小时钟 指针的实现方式很简单,就是通过绝对定位将指针移到中间,然后以下边中间的位置为圆心旋转即可.代码如下: <!DOCTYPE html> <ht ...

  10. tensorflow 1.0 学习:模型的保存与恢复(Saver)

    将训练好的模型参数保存起来,以便以后进行验证或测试,这是我们经常要做的事情.tf里面提供模型保存的是tf.train.Saver()模块. 模型保存,先要创建一个Saver对象:如 saver=tf. ...