XMLHttpRequest 对象
所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用 ActiveXObject)。
XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
创建 XMLHttpRequest 对象
所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。
创建 XMLHttpRequest 对象的语法:
variable=new XMLHttpRequest();
老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:
variable=new ActiveXObject("Microsoft.XMLHTTP");
为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持 XMLHttpRequest 对象。如果支持,则创建 XMLHttpRequest 对象。如果不支持,则创建 ActiveXObject :
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
post
<a href="javascript:;" onclick="alert(getXhr());"> 获取ajax对象
xhr.open("post","post_test.do",true);
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
xhr.send("uname=DR");
String name = req.getParameter("name");
//String str = new String(name.getBytes("iso-8859-1"), "utf-8");
System.out.println(name);
var uri = "encode_get.do?name=" + document.getElementById("name").value;
xhr.open("get", encodeURI(uri),true);
Ajax get方法传递中文:
第一种方式
(前台写法)
1. var userv=
2. document.getElementsByName('username')[0].value;
xmlhttp.open("get","servlet/TestServlet?username="+userv,true);
xmlhttp.send(null);
(服务端写法)
String name = new String(request.getParameter("username").getBytes("iso8859-1"),"utf-8");
System.out.println(name);
结果:QQ的
第二种方式
(前台写法)
1. <Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
2.var userv=document.getElementsByName('username')[0].value;
xmlhttp.open("get","servlet/TestServlet?username="+encodeURI(userv),true);
xmlhttp.send(null);
(服务端写法)
String name=request.getParameter("username");
System.out.println(name);
Ajax post方法传递中文:
(前台写法)
xmlhttp.open("post","servlet/TestServlet",true); xmlhttp.setRequestHeader('content-type','application/x-www-form-urlencoded');
var userv=
document.getElementsByName('username')[0].value
xmlhttp.send("username="+userv);
(后台写法)
request.setCharacterEncoding("utf-8");
String name=request.getParameter("username");
System.out.println(name);
。