ajax小结

本文分享了一个简单的AJAX示例代码,通过POST方式提交数据,并从服务器接收XML格式的响应。示例包括客户端JavaScript代码及服务器端Servlet实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近写了几个小的ajax例子,拿出来分享,高手请掠过,代码如下

var xmlHttpRequest;
function verify(){
var userName = document.getElementById("userName").value;

if (window.XMLHttpRequest) {
xmlHttpRequest = new XMLHttpRequest();
} else {
if (window.ActiveXObject) {
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
}

//注册回调函数
xmlHttpRequest.onreadystatechange = callback;

//设置连接信息,用GET方式提交
//xmlHttpRequest.open("GET","AJAXServlet?name=" + userName,true);

//发送数据
//xmlHttpRequest.send(null);

//设置连接信息用POST方式提交
xmlHttpRequest.open("POST","AJAXXMLServlet",true);
//设置http的请求头
xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");


xmlHttpRequest.send("name=" + userName);

}

function callback(){
//判断对象交互是否完成
if(xmlHttpRequest.readyState == 4){
//判断http交互是否完成
if(xmlHttpRequest.status == 200){
var obj = xmlHttpRequest.responseXML;
if(obj){
var messageNodes = obj.getElementsByTagName("message");
if(obj.length > 0){
var message = messageNodes[0].firstChild.nodeValue;
document.getElementById("result").innerHTML = message;
}
}else {
window.alert("数据格式不正常");
}

}else {
window.alert("出错");
}

}
}


服务器端代码

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.io.PrintWriter;

public class AJAXXMLServlet extends HttpServlet {
protected void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
doGet(httpServletRequest,httpServletResponse);
}

protected void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
httpServletRequest.setCharacterEncoding("UTF-8");
httpServletResponse.setContentType("text/xml;charset=UTF-8");
String name = httpServletRequest.getParameter("name");
PrintWriter out = httpServletResponse.getWriter();

StringBuilder sb = new StringBuilder();
sb.append("<message>");
if(null == name || "" == name){
sb.append("用户名不能为空").append("</message>");
out.println(sb.toString());
}else if("xiaoming".equals(name)){
sb.append("用户名[" + name + "]已经存在").append("</message>");
out.println(sb.toString());
}else {
sb.append("用户名[" + name + "]可以使用").append("</message>");
out.println(sb.toString());
}
out.close();
}
}



上面处理的是服务器端返回的xml格式的数据,在Servlet中要记得设置
httpServletResponse.setContentType("text/xml;charset=UTF-8");
即返回的文本格式需为xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值