<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<style>
h2 {color: #555; }
.p1 {color: #f99; }
.p2 {color: #9f9; }
.p3 {color: #99f; } </style>
<ul id="ul">
<li>
<p class="p4"></p>
<h2></h2>
<p class="p1"></p>
<p class="p2"></p>
<p class="p3"></p>
</li>
</ul>
</body>
</html>
<script>
window.onload = function() {
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else{
xhr = new ActiveXObject('Microsoft.XMLHTTP');
} var url = 'xml/1.xml?';
var para = '?_t='+new Date().getTime();//传递到send()当中去,不会有缓存 // xhr.setRequestHeader('Content-Type','application/x-form-www-urlencoded')
// Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED. xhr.open('post',url,true);//url中不再包含参数
xhr.setRequestHeader('Content-Type','application/x-form-www-urlencoded')//必须位于open之后,send之前
xhr.send(para);
xhr.onreadystatechange = function () {
if(xhr.readyState == 4 && xhr.status == 200 ) {
//得到的XML是一个对象,这个对象有各种属性和方法
var data = xhr.responseXML;
var NOVEL = data.getElementsByTagName('NOVEL')[0];
var books = NOVEL.getElementsByTagName('book');
var len = books.length;
//console.log(NOVEL);
var str = '';
for(var i=0;i<len;i++) {
str+= '<li><h2>'+getNodeText(books[i].getElementsByTagName('name')[0])+'</h2>';
str+= '<p class="p4">'+getNodeText(books[i].getElementsByTagName('author')[0])+'</p>';
str+= '<p class="p2">'+getNodeText(books[i].getElementsByTagName('publish_time')[0])+'</p>';
str+= '<p class="p3">'+getNodeText(books[i].getElementsByTagName('publish_time')[0])+'</p>';
str+= '<p class="p1">'+getNodeText(books[i].getElementsByTagName('publish_time')[0])+'</p></li>';
}
document.getElementById('ul').innerHTML = str;
}
} function getNodeText(node){
if(window.ActiveXObject){//IE
return node.text;
}else{//标准浏览器
if(node.nodeType == 1){
return node.textContent;
}
}
} }
</script>
<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<NOVEL>
<book>
<name>Herry Porter</name>
<author>J.K Rolling</author>
<publish_time>2058</publish_time>
</book>
<book>
<name>三国演义</name>
<author>罗贯中</author>
<publish_time>1984</publish_time>
</book>
<book>
<name>水浒传</name>
<author>施耐庵</author>
<publish_time>2501</publish_time>
</book>
<book>
<name>红楼梦</name>
<author>高雪琴</author>
<publish_time>1865</publish_time>
</book>
</NOVEL>
<MATH>
<book>
<name>圆周率</name>
<author>猪无能</author>
<publish_time>1869</publish_time>
</book>
<book>
<name>勾股定理</name>
<author>沙悟净</author>
<publish_time>1875</publish_time>
</book>
<book>
<name>相对论</name>
<author>唐玄奘</author>
<publish_time>1886</publish_time>
</book>
</MATH>
</bookstore>

  

原生ajax练习-post&xml的更多相关文章

  1. JS原生ajax与Jquery插件ajax深入学习

    序言: 近来随着项目的上线实施,稍微有点空闲,闲暇之时偶然发现之前写的关于javascript原生xmlHttpRequest ajax方法以及后来jquery插件ajax方法,于是就行了一些总结,因 ...

  2. 手写原生ajax

    关于手写原生ajax重要不重要,各位道友自己揣摩吧, 本着学习才能进步,分享大家共同受益,自己也在自己博客里写一下 function createXMLHTTPRequest() { //1.创建XM ...

  3. 浅谈AJAX的基本原理和原生AJAX的基础用法

    一.什么是AJAX? AJAX,即"Asynchronous Javascript And XML",翻译为异步的JavaScript和XML,是一种创建交互式网页应用的网页开发技 ...

  4. python_way day21 Django文件上传Form方式提交,原生Ajax提交字符处啊,Django文件上传之原生Ajax方式、jQuery Ajax方式、iframe方式,Django验证码,抽屉示例,

    python_way day21 1.Django文件上传至Form方式 2.原生Ajax文件上传提交表单 使用原生Ajax好处:不依赖jquery,在发送一个很小的文件或者字符串的时候就可以用原生A ...

  5. [译]脱离jQuery,使用原生Ajax

    脱离jQuery,使用原生Ajax 标签: Ajax translate 英文出处:<A Guide to Vanilla Ajax Without jQuery> 翻译: 刘健超 J.c ...

  6. 原生AJAX如何异步提交数据?

    AJAX概述 AJAX:Asynchronous Javascript And XML,异步的JS和XML.2001,Google为了改进搜索的用户体验,提出了GoogleSugguest效果,正式提 ...

  7. 原生AJAX基础讲解及兼容处理

    原文:原生AJAX基础讲解及兼容处理 AJAX = Asynchronous JavaScript and XML (异步的JavaScript和XML). AJAX不是新技术 ,但却是热门的技术.它 ...

  8. js原生Ajax 的封装和原理

    原理及概念 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是一种用于创建快速动态网页的技术. 动态网页:是指可以通过服务器语言结合数 ...

  9. jQuery的$.ajax方法响应数据类型有哪几种?本质上原生ajax响应数据格式有哪几种,分别对应哪个属性?

    jQuery的$.ajax方法响应数据类型有:xml.html.script.json.jsonp.text 本质上原生ajax响应数据格式只有2种:xml和text,分别对应xhr.response ...

随机推荐

  1. solidity基础知识

    1.solidity是一种语法类似JavaScript的高级语言,它被设计成以编译的方式生成以太坊虚拟机代码.在后续的内容中你将会发现,使用它很容易创建用于投票.众筹.封闭拍卖.多重签名钱包等等的合约 ...

  2. 利用C语言识别用户输入字符并且输出该字符ASCII码值(大小写字母篇)(含思路)

    要求:从键盘输入一个字符,如果输入字符的是小写英文字母,则将其转换为大写英文字母,然后将转换后的英文字母及其ASCII码值输出到屏幕上,如果输入的是其他字符,则不转换并且直接将它及其ASCII码值输出 ...

  3. 18.自动运维工具ansible

    1 Ansible 介绍和架构 1.1 Ansible介绍 ansible 的名称来自科幻小说<安德的游戏>中跨越时空的即时通信工具,使用它可以在相距数光年的 距离,远程实时控制前线的舰队 ...

  4. MIT6.828 Preemptive Multitasking(上)

    Lab4 Preemptive Multitasking(上) PartA : 多处理器支持和协作多任务 在实验的这部分中,我们首先拓展jos使其运行在多处理器系统上,然后实现jos内核一些系统功能调 ...

  5. Nexus3配置yum私服

    传送门==>>Nexus私服搭建教程 yum私服的优点: >节省公网带宽 >离线安装等 1. 创建Blob Stores 2. 创建仓库 2.1 创建yum代理(aliyun样 ...

  6. 一千个不用 Null 的理由!

    港真,Null 貌似在哪里都是个头疼的问题,比如 Java 里让人头疼的 NullPointerException,为了避免猝不及防的空指针异常,千百年来程序猿们不得不在代码里小心翼翼的各种 if 判 ...

  7. Maven | 把jar包安装到本地仓库

    使用的场景 自己写的工具类想安装到本地 从Maven仓库中下载不下来的jar 使用的步骤 首先要保证自己的Maven配置全局环境变量,如果没有配置过maven全局变量,可以按照下面的步骤配置一下: 先 ...

  8. XML技术

    XML是一种可扩展标记语言,用来标记数据.定义数据类型,1998年由W3W发布1.0.版本,与HTML语言相比,可以自定义可扩展标签格式,但是语法严格. XML可以用来存储数据,可移植性强,主要充当配 ...

  9. Codeforces Round#704 Div2 题解(A,B,C,D,E)

    FST ROUND !!1 A Three swimmers: 直接整除一下向上取整就好了: #include <bits/stdc++.h> using namespace std; t ...

  10. 「CF516D」 Drazil and Morning Exercise

    「CF516D」 Drazil and Morning Exercise 传送门 这个 \(f_i\) 显然可以通过树形 \(\texttt{DP}\) 直接求. 然后看到这种差值问题感觉就可以二分转 ...