ajax返回xml并解析

本文介绍了一种使用Ajax发送POST请求并处理响应的方法。具体包括如何创建XMLHttpRequest对象,如何设置请求头及发送请求,以及如何解析从服务器接收到的XML数据。

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

//创建xmlrequest对象


function getXMLHttpRequestObject(){
  
 try{
  xmlRequest = new XMLHttpRequest(); //Firefox ,safari
 }catch(e){
  //IE
  try{
   xmlRequest = new ActiveXObject("Msxml2.XMLHTTP");
  }catch(e){
      xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
 return xmlRequest;
}

//发送ajax请求

 

function sendAjaxRequest(url,callBackMethod){
 xmlRequest = getXMLHttpRequestObject();
 xmlRequest.onreadystatechange = callBackMethod;
 xmlRequest.open("post",url,true);
 xmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
 xmlRequest.send(url);
 return true;

 

//ajax调用函数

function  getTotalList1(product){
    url = "../sparepart/get.action?product="+product;
    if(!sendAjaxRequest(url,dataChange))
    return;
  }
 

//状态改变时调用的函数
  function  dataChange(){
     if(xmlRequest.readyState==4){
   if(xmlRequest.status==200){
    parseXML(xmlRequest.responseXML);//已经可以正常接受数据
   }else { //页面不正常
                window.alert("您所请求的页面有异常。");
            }
  }
  }

//解析返回的xml
  function  parseXML(xml){
     var  infos = xml.getElementsByTagName("info");
      for(var i=0;i<infos.length;i++){
       var  name = infos[i].getElementsByTagName('name')[0].firstChild.data;
       var issn = infos[i].getElementsByTagName('issn')[0].firstChild.data;
       var id = infos[i].getElementsByTagName('id')[0].firstChild.data;
       doAppend(name,issn,id);      
      }    
  }

 

//jsp界面此处注意out变量类型

<%@ page  contentType="text/xml; charset=UTF-8" language="java" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="css.sparepart.bean.Info" %>
<%
 response.setCharacterEncoding("utf-8");
 response.setContentType("text/xml;charset=utf-8");
 List  list = (ArrayList)request.getAttribute("sanlist");
 PrintWriter out1 = response.getWriter();
 out1.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
 out1.println("<infos>");
 for(int i=0;i<list.size();i++){
   Info  info= (Info)list.get(i);
   out1.println("<info>");
   out1.println("<name>"+info.getName()+"</name>");
   out1.println("<issn>"+info.getIssn()+"</issn>");
   out1.println("<id>"+info.getId()+"</id>");
   out1.println("</info>");
 }
  out1.println("</infos>");
%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值