<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Using Ajax with XML</title>
<script src="../js/jquery-1.4.1.js" type="text/javascript"></script>
<script type="text/javascript">
var menu; //XMLHttpRequest对象:初始化为false;
var XMLHttpRequestObject = false; //创建XMLHttpRequest对象
if (window.XMLHttpRequest) {
XMLHttpRequestObject = new XMLHttpRequest();
//设置下载的数据类型为XML格式
if (XMLHttpRequestObject.overrideMimeType) {
XMLHttpRequestObject.overrideMimeType("text/xml");
}
}
else if (window.ActiveXObject) {
XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
//设置下载的数据类型为XML格式
XMLHttpRequestObject.setRequestHeader("text/xml");
} function getmenu(url) {
if (XMLHttpRequestObject) {
//打开XMLHttpRequest对象
XMLHttpRequestObject.open("GET", url);
//获取XML数据
XMLHttpRequestObject.onreadystatechange = function () {
if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
var xmlDocument = XMLHttpRequestObject.responseXML;
//获得menu1.xml/menu2.xml所有的<mennuitem>标签
menu = xmlDocument.getElementsByTagName("menuitem");
//alert(menu.length);
ListMenu();
delete XMLHttpRequestObject;
XMLHttpRequest = null;
}
else {
//alert(XMLHttpRequestObject.readyState + "+" + XMLHttpRequestObject.status);
}
} //真正执行下载的代码
XMLHttpRequestObject.send(null);
}
} //绑定下拉框
function ListMenu() {
var loopIndex;
//获取下拉框控件
var selectControl = document.getElementById("menuList");
//循环添加选项到下拉框
for (loopIndex = 0; loopIndex < menu.length; loopIndex++) {
selectControl.options[loopIndex] = new Option(menu[loopIndex].firstChild.data);
}
}
</script>
</head>
<body>
<h1>
Using Ajax with XML</h1>
<form>
<select size="1" id="menuList">
<!-- onchange="setmenu()"-->
<option>Select a menu item</option>
</select>
<br />
<br />
<input type="button" value="Select menu 1" onclick="getmenu('menu1.xml')" /><input
type="button" value="Select menu 2" onclick="getmenu('menu2.xml')" />
</form>
<div id="targetDiv" style="width: 100; height: 100;">
Your lunch selection will appear here</div>
</body>
</html>

  

结果:

总结:
responseXML不能写成responseXml
之前调试一直通不过,找了老半天原来问题是在这,浏览器对responseXml也不报没有该属性或者为null

注:在IE浏览器上按F12调试,只有在版本为10以上时才得到正确结果,在360上没任何问题

Ajax学习笔记2之使用Ajax和XML的更多相关文章

  1. ajax学习笔记(原生js的ajax)

    ajax是一个与服务器端语言无关的技术,可以使用在任何语言环境下的web项目(如JSP,PHP,ASP等). ajax优点: 1) 页面无刷新的动态数据交互 2) 局部刷新页面 3) 界面的美观 4) ...

  2. Ajax学习笔记之一----------第一个Ajax Demo[转载]

    原文地址: http://www.cnblogs.com/pjx412/archive/2011/05/04/2037014.html 一.核心推动力:XMLHttpRequest对象XMLHttpR ...

  3. AJAX学习笔记——jQuery中的AJAX

    用jQuery实现Ajax jQuery.ajax([settings]) 1.type:类型, "POST"或"GET" ,默认为"GET" ...

  4. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  5. jQuery学习笔记之jQuery的Ajax(3)

    jQuery学习笔记之jQuery的Ajax(3) 6.jQuery的Ajax插件 源码地址: https://github.com/iyun/jQueryDemo.git ------------- ...

  6. Django学习笔记(14)——AJAX与Form组件知识补充(局部钩子和全局钩子详解)

    我在之前做了一个关于AJAX和form组件的笔记,可以参考:Django学习笔记(8)——前后台数据交互实战(AJAX):Django学习笔记(6)——Form表单 我觉得自己在写Django笔记(8 ...

  7. Ajax学习笔记demo

    AJAX学习 AJAX简介: 全称:Asynchronous JavaScript and XML (JavaScript执行异步网络请求(JS和XML)),通过AJAX可以在浏览器向服务器发送异步请 ...

  8. Jquery ajax 学习笔记

    本人的js & jq 一直是菜鸟级别,最近不忙就看了看ajax方面的知识,文中部分内容参考自这里&这里 之前一直用js写ajax现在基于jq实现方便多了~ $.get & $. ...

  9. Ajax学习笔记1之第一个Ajax应用程序

    代码 <head> <title>An Ajax demo</title> <script src="../js/jquery-1.4.1.js&q ...

随机推荐

  1. Macaca-iOS入门那些事2

    Macaca-iOS入门那些事2 一. 前言 上文<Macaca-iOS入门那些事>讲到Macaca环境部署及运行了第一个案例,本文将讲解其案例编写. 二. 测试案例解析 iOS案例:ma ...

  2. Behind RabbitMQ Exchange Types

    what's the underlying philosophy behind "exchange types"? In a word, it is all about imple ...

  3. swift 加载 storyboard 里的UIViewController

    let storyBoard:UIStoryboard! = UIStoryboard(name: "Main", bundle: nil) let deskVC:DeskView ...

  4. MVVM架构~knockoutjs系列之验证信息自定义输出~再续

    返回目录 对于一个项目的表单验证,方式有很多,效果也有很多,具体使用哪种完成取决于产品这边,产品让你用什么,你就要用什么,而做为开发人员,我们要做的就是"整理近可能多的架构方式",这样才可以自由的应变 ...

  5. 爱上MVC3~在控制器或Action上动态设定模板页(Layout)

    回到目录 很多境况下,我们需要设置自己模块的layout,即它的布局页面,在MVC2中叫它模板页面,你可以在return view方法时设置它,当然,这不是一种好方法,因为我不想每个action都去设 ...

  6. jquery的html,text,val

    .html()用为读取和修改元素的HTML标签 .text()用来读取或修改元素的纯文本内容 .val()用来读取或修改表单元素的value值. 这三个方法功能上的对比 .html(),.text() ...

  7. andriod sdk模拟器安装过程中报错

    andriod sdk模拟器安装过程中,出现下述错误: Failed to fetch URL http://dl-ssl.google.com/android/repository/reposito ...

  8. C++中如何定义类和对象?

    在C++语言中,对象的类型被称为类,类代表了某一批对象的共性和特征. 类是对象的抽象,而对象是类的具体实例.如同C中的结构体一样,我们要先定义一个结构体,再使用结构体去定义一个变量.同一个结构体可以定 ...

  9. @@IDENTITY与SCOPE_IDENTITY()

    在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含语句生成的最后一个标识值.如果语句未影响任何包含标识列的表,则 @@IDENTITY 返回 NULL. ...

  10. ASP.NET MVC TagBuilder使用

    ASP.NET MVC在需要进行新建HTML辅助方法时,可以来使用TagBuilder类. TagBuilder类常用方法: 方法名称 说明 AddCssClass() 可在卷标中添加一个新的Clas ...