我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Ajax中怎么利用XML实现异步提交

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Ajax中怎么利用XML实现异步提交

这篇文章给大家介绍Ajax中怎么利用XML实现异步提交,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

第一种方法是xml方法

1.首先在jsp页面的JavaScript,这段代码是通用的,所以把他放在函数外面,可以供其他的函数共同使用

var xhr=false;
//创建XMLHttpRequst对象
if(window.XMLHttpRequest)
{
xhr=new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
xhr=new ActiveXObject("Microsoft.XMLHTTP");
}
else
{
xhr=false;
}

2.获取所选择的省份value值,并将value值通过异步提交传到servlet

//获取城市的信息
function getCity()
{
//省份下拉框的对象
var provinceobj=document.getElementById("province");
//被选择的省份的索引
var index=provinceobj.selectedIndex;
//被选择的省份的value值
var provincevalue=provinceobj[index].value;
//被选择的省份的text值
var province=provinceobj[index].Text;
alert(provincevalue);
var url="<%=basepath%>CityServlet";
<%-- var url="<%=basepath%>CityServlet?provincevalue="+provincevalue; --%>//get请求在url上带参数
xhr.open("post",url,true);//设置为post提交方式,true表示为异步提交
//post提交方式的时候需要设置提交的编码
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//当状态改变时,调用callBack_XML来判断是否需要接收数据 
     xhr.onreadystatechange=callBack_XML;//xml方法 
    //通过post提交的时候需要将数据放到send里传到servlet里 
    xhr.send("provincevalue="+provincevalue); 
    //xhr.send(null); 
  }

3.编写回调函数callBack_XML(),此函数判断当服务器响应正常时,接收数据并作出处理

function callBack_XML()//xml方法来获取
{
//城市下拉选择框的对象
var cityobj=document.getElementById("city");
//当请求状态等于4时,相应已完成,可以访问服务器响应并使用它
if(xhr.readyState==4)
{
//当状态为200时意味着,状态正常,未出错
if(xhr.status==200)
{
alert("响应成功");
//获取相应的xml文档
var cityxml=xhr.responseXML;
alert(cityxml);
//获取根元素
var root=cityxml.documentElement;
//获取根元素(city_info)下面的所有city元素
var cities=root.getElementsByTagName("city");
//将下拉框内容清除
cityobj.options.length=1;
for(var i=0;i<cities.length;i++)
{
var city=cities[i];
//获取节点的值
var cid=city.childNodes[0].firstChild.nodeValue;
var cname=city.childNodes[2].firstChild.nodeValue;
//alert(cid+" "+cname);
//放到下拉选择框里Option(文本内容,value值);
cityobj.options[cityobj.options.length]=new Option(cname,cid);
}
}
//当状态为404时,表示找不到页面
else if(xhr.status==404)
{
alert("Request URL is not exists!");
}
else
{
alert("Error:Status is:"+request.status);
}
}
}

4.在servlet页面:

String provincevalue=request.getParameter("provincevalue");
System.out.println("省份编号:"+provincevalue);
CityService cityservice=CityService.getCityService();
List<City> citylist=cityservice.getCity(provincevalue);
for(int i=0;i<citylist.size();i++)
{
System.out.println(citylist.get(i));
}
//生成xml页面
StringBuffer xml=new StringBuffer();
xml.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
xml.append("<city_info>");
for(City c : citylist)
{
xml.append("<city>");
xml.append("<id>"+c.getId()+"</id>");
xml.append("<cityid>"+c.getCityid()+"</cityid>");
xml.append("<cityname>"+c.getCity()+"</cityname>");
xml.append("<province>"+c.getFather()+"</province>");
xml.append("</city>");
}
xml.append("</city_info>");
//设置响应字符集编码,防止中文乱码
response.setCharacterEncoding("utf-8");
response.setContentType("text/xml;charset=utf-8");
//将xml文档写出去
PrintWriter writer=response.getWriter();
//因为只能写字符串,所以toString
writer.write(xml.toString());
writer.flush();
writer.close();
}

关于Ajax中怎么利用XML实现异步提交就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Ajax中怎么利用XML实现异步提交

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

纯javascript中ajax如何实现php异步提交表单

这篇文章将为大家详细讲解有关纯javascript中ajax如何实现php异步提交表单,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。很多时候需要异步提交表单,当表单太多是时候,一个个getElementB
2023-06-08

如何在AJAX中使用 Servlet实现数据异步交互

本篇文章为大家展示了如何在AJAX中使用 Servlet实现数据异步交互,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先,导入json所需要的6个包下载链接:JSONObjectjar_jb51.
2023-05-31

怎么使用Ajax实现异步刷新

小编给大家分享一下怎么使用Ajax实现异步刷新,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!所谓的异步刷新,就是不刷新整个网页进行更新数据。只有通过js才能实现A
2023-06-08

Python中怎么利用Asyncio实现异步编程

本篇文章为大家展示了Python中怎么利用Asyncio实现异步编程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。异步是怎么一回事?在传统的顺序编程中, 所有发送给解释器的指令会一条条被执行。此类代
2023-06-17

C#中怎么利用Socket实现异步通讯

这篇文章将为大家详细讲解有关C#中怎么利用Socket实现异步通讯,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。C# Socket异步通讯客户端之主程序:using System;using
2023-06-17

C#中怎么利用AsyncResult实现异步编程

这篇文章给大家介绍C#中怎么利用AsyncResult实现异步编程,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C#异步编程模式IAsyncResult概述IAsyncResult 异步设计模式通过名为 BeginOp
2023-06-17

怎么在python中利用asyncio实现异步IO

这篇文章给大家介绍怎么在python中利用asyncio实现异步IO,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;4、嵌
2023-06-14

Django中怎么利用ajax异步刷新获取数据

今天就跟大家聊聊有关Django中怎么利用ajax异步刷新获取数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。