《Java从入门到放弃》入门篇:XMLHttpRequest的基本用法

不闲扯,直接开讲。

使用XMLHttpRequest对象,主要分为以下七个步骤:

  1. 创建对象
  2. 设置过期时间
  3. 设置数据格式
  4. 初始化 HTTP 请求
  5. 设置HTTP头请求
  6. 回传数据的处理
  7. 发送 HTTP 请求

对应代码如下所示

<script type="text/javascript">
    var xhr;

    function goAjax() {
	//1.创建对象
	xhr = new XMLHttpRequest();
	if (window.XMLHttpRequest) {
	    xhr = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
	    xhr = new ActiveXObject("Microsoft.XMLHTTP");
	}

	//2.设置过期时间
	xhr.setTimeout = 3000;
	//3.设置数据格式
	xhr.responseType = "text";
	//4.初始化 HTTP 请求参数(未发送)
	xhr.open("POST", "servlet/AjaxLoginServlet", true);
	//5.设置HTTP请求
	xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	//6.回传数据的处理
	//注册相关事件回调处理函数
	//6.1 回传的数据加载完毕后执行
	xhr.onload = function(e) {
	    //alert(this.readyState + "||" + this.status);
	    if(this.readyState == 4 || this.status == 200) {
		var div = document.getElementById("divContent");
		div.innerHTML = this.responseText;

	    }
	};
	//6.2访问出错
	xhr.onerror = function(e) {
	    alert("登录失败!");
	};
	//6.3超时
//	xhr.ontimeout = function(e) {
//	};
	//6.4状态改变
	/* xhr.onreadystatechange = function(e){
    	    if(this.readyState == 4 || this.status == 200) {
    	        alert(this.responseText);
    	    }
	} */
	//7.发送数据
	var username = document.getElementById("username").value;
	var pwd = document.getElementById("password").value;
	xhr.send("username=" + username + "&password=" + pwd);
    }
</script>

HTML页面代码如下:

<body>
    账号:<input type="text" name="username" id="username" /><br />
    密码:<input type="password" name="password" id="password" /><br />
    <input type="button" value="登录" onclick="goAjax();" />
    <div id="divContent" style="width:200px; height: 100px;"></div>
</body>

servlet文件代码如下:

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
	//设置内容格式
	response.setContentType("text/html");

	PrintWriter out = response.getWriter();
	//获取url中的用户名和密码
	String username = request.getParameter("username");
	String password = request.getParameter("password");
	//成功输出success 失败输出fail
	if ("haha".equals(username) && "123".equals(password)) {
		out.println("success");
	} else {
		out.println("fail");
	}
	out.flush();
	out.close();
}
时间: 2024-12-16 05:40:49

《Java从入门到放弃》入门篇:XMLHttpRequest的基本用法的相关文章

Vue.js2.0从入门到放弃---入门实例

最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用Vue.js 的构建工具都已经升级到2.0版本了),经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本在1.0版本的基础上做了好多调整,废弃了好多api...废话不多说了,把我踩过的坑,在这里跟大家说说,希望对初学者有所帮助.ps:高手请绕道. 既然是入门实例,那肯定从最基础的开始了,希

转-Vue.js2.0从入门到放弃---入门实例(一)

http://blog.csdn.net/u013182762/article/details/53021374 标签: Vue.jsVue.js 2.0Vue.js入门实例Vue.js 2.0教程 2016-11-03 14:40 21431人阅读 评论(9) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 最 近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊, 由

vue.js 2.0 从入门到放弃 --- 入门案例(一)

最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用Vue.js 的构建工具都已经升级到2.0版本了),经过了一段时间的摸索和看官方的教程和api,才了解到2.0版本在1.0版本的基础上做了好多调整,废弃了好多api...废话不多说了,把我踩过的坑,在这里跟大家说说,希望对初学者有所帮助.ps:高手请绕道. 既然是入门实例,那肯定从最基础的开始了,希

mysql从入门到放弃-入门知识介绍

数据库在互联网网站的重要性 简单地说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构来组织和存储的,我们可以通过数据库提供的多种方法来管理数据库里的数据.由于数据库不易扩展,所以,在一个互联网网站里,它的瓶颈必然是数据库. 数据库的种类 在当今的互联网中,最常用的数据库模型主要有两种:1)关系型数据库:2)非关系型数据库(NOSQL).

《Java从入门到放弃》文章目录

转眼半个月过去了,不知不觉也写了10篇博客,突然发现所有的目录都没有纯列表的展示,所以特意写一个目录篇,来记录该系列下所有的文章. 当然,因为现在还没有写完,所以先按时间顺序排列,等相关内容都写完后,再按学习顺序来整理. <Java从入门到放弃>入门篇:XMLHttpRequest的基本用法 <Java从入门到放弃>入门篇:Struts2的基本访问方 <Java从入门到放弃>入门篇:Struts2的基本访问方式(二) <Java从入门到放弃>入门篇:Stru

JavaScript从入门到放弃之补充篇

上回说到,基础之篇,看久必新,新久必看. 这回我们来说说除了基础篇之外的一些花里胡哨的东西. 数组 以字面量方式创建数组 //字面量方式创建 var colors = ['red','white','black'] console.log(colors) 输出结果如下: 使用构造函数创建 // 使用构造函数创建数组 var heroes = new Array(); heroes[0] = 'Marvelous'; heroes[1] = 'Riven'; heroes[2] = 'Lee Si

Linux从入门到放弃、零基础入门Linux(第四篇):在虚拟机vmware中安装centos7.7

如果是新手,建议安装带图形化界面的centos,这里以安装centos7.7的64位为例 一.下载系统镜像 镜像文件下载链接https://wiki.centos.org/Download 阿里云官网:https://mirrors.aliyun.com 现更新为:https://opsx.alibaba.com/mirror 清华软件镜像:https://mirrors.tuna.tsinghua.edu.cn/ 都可以, 下载centos7.7的64位版本镜像文件种子,然后用下载软件下载即可

iOS 即时通讯,从入门到 “放弃”?

原文链接:http://www.jianshu.com/p/2dbb360886a8 本文会用实例的方式,将 iOS 各种 IM 的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. —— 由宇朋Look分享 前言 本文会用实例的方式,将iOS各种IM的方案都简单的实现一遍.并且提供一些选型.实现细节以及优化的建议. 注:文中的所有的代码示例,在github中都有demo:iOS即时通讯,从入门到“放弃”?(demo)可以打开项目先预览效果,对照着进行阅读. 言归正传,首先我们来总

NDK开发 从入门到放弃(七:Android Studio 2.2 CMAKE 高效NDK开发)

前言 之前,每次需要边写C++代码的时候,我的内心都是拒绝的. 1. 它没有代码提示!!!这意味着我们必须自己手动敲出所有的代码,对于一个新手来说,要一个字母都不错且大小写也要正确,甚至要记得住所有的jni函数等,真是太折磨人了-平时写java代码的时候都是写几个字母会出来一大堆提示然后选择的,这样还有一个好处就是很多时候我们不知道有那些函数,但是我们可以通过obj.,然后就可以看到它有哪些方法函数了. 2. 很多地方会显示为红色,就像是错误提示的那种,当然,如果没错的话还是能编译运行的,但是如

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据

OkHttp框架从入门到放弃,解析图片使用Picasso裁剪,二次封装OkHttpUtils,Post提交表单数据 我们这片博文就来聊聊这个反响很不错的OkHttp了,标题是我恶搞的,本篇将着重详细的分析,探索OkHttp这个框架的使用和封装 一.追其原理 Android系统提供了两种HTTP通信类 HttpURLConnection HttpClient Google推荐使用HttpURLConnection,这个没必要多说,事实上,我这篇写的应该算是比较晚了,很多优秀的博文都已经提出了这些观