深入了解Ajax之XMLHttpRequest
来源:互联网 发布:xd破解id软件 编辑:程序博客网 时间:2024/05/22 01:29
深入了解XMLHttpRequest可以更深入理解AJax原理
常用的方法和属性:
1 先进行一个get请求
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"><head><title>新建网页</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript">function createXHR() { var xhr = null; //AJAX利用一个构建到所有现代浏览器内部的对象-XMLHttpRequest-来实现发送和接收HTTP请求与响应信息。 if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if(window.ActiveXObject) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } return xhr;}// 1:制造xhrvar xhr = createXHR();function vote() { // 2: 打开连接 xhr.open('GET','./06-restest.php',true); // 3: 发请求 xhr.send(null); // 绑定状态变化的回调函数 xhr.onreadystatechange = function () { if(this.readyState == 4 && this.status == 200) { /* *ReadyState取值 描述 0 描述一种"未初始化"状态;此时,已经创建一个XMLHttpRequest对象,但是还没有初始化。 1 描述一种"发送"状态;此时,代码已经调用了XMLHttpRequest open()方法并且XMLHttpRequest已经准备好把一个请求发送到服务器。 2 描述一种"发送"状态;此时,已经通过send()方法把一个请求发送到服务器端,但是还没有收到一个响应。 3 描述一种"正在接收"状态;此时,已经接收到HTTP响应头部信息,但是消息体部分还没有完全接收结束。 4 描述一种"已加载"状态;此时,响应已经被完全接收。 * **/ var str = ''; str = '状态码是' + this.status + '<br />'; str = str + '状态文字是' + this.statusText + '<br />'; str = str + '返回类型是:' + this.getResponseHeader('Content-Type') + '<br />'; str = str + '返回的主体长度是' + this.getResponseHeader('Content-Length') + '<br />'; str = str + '返回的主体内容是' + this.responseText + '<br />'; str = str + '所有头信息' + this.getAllResponseHeaders(); document.getElementById('progress').innerHTML = str; } }}function xhrstop() { xhr.abort();}</script><style type="text/css"></style></head> <body> <div> <p><img src="wmc.jpg" /><p> <p><input type="button" value="测试各种返回值" onclick="vote();" /></p> <p><input type="button" value="中断" onclick="xhrstop();" /></p> </div> <div id="progress"></div> </body></html>php代码:
<?phpsleep(5);$str = 'abcdefg';echo str_shuffle($str);
运行结果:
2 进行一个post请求
html代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN"><head><title>新建网页</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript">function createXHR() { var xhr = null; if(window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if(window.ActiveXObject) { xhr = new ActiveXObject('Microsoft.XMLHTTP'); } return xhr;}function ajaxreg() { /* 步骤1: 打开到后台服务器连接(POST连接) 步骤2: 收集表单的数据 步骤3: 发送数据 步骤4: 监听,回调等 */ // 0:制造xhr var xhr = createXHR(); // 1: 打开POST连接 xhr.open('POST','./07-ajaxreg.php',true); xhr.onreadystatechange = function() { if(this.readyState == 4) { alert(this.responseText); } } // 2: 收集表单数据 var un = document.getElementsByName('username')[0].value; var eml = document.getElementsByName('email')[0].value; // 3: send //alert('username='+un+'&email=' + eml);下面这个头信息不能少 xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); xhr.send('username='+un+'&email=' + eml); return false;}</script><style type="text/css"></style></head> <body> <h1>ajax注册</h1> <div id="regres"></div> <form action="07-ajaxreg.php" method="post" target="regzone" onsubmit="return ajaxreg();"> <p>用户名:<input type="text" name="username" /></p> <p>邮件地址:<input type="text" name="email" /></p> <p><input type="submit" name="注册" /></p> </form> <iframe width="0" height="0" frameBorder="0" name="regzone"></iframe> </body></html>php代码:
<?phpprint_r($_POST);
jquery是怎样封装post的哪?
- 深入了解Ajax之XMLHttpRequest
- Ajax之深入了解
- Ajax—了解XMLHttpRequest对象
- ajax之xmlHttpRequest
- AJAX之xmlHttpRequest
- ajax之XMLHttpRequest
- AJAX之XMLHttpRequest对象
- Ajax之XmlHttpRequest对象
- Ajax核心技术之XMLHttpRequest
- AJAX之XMLHttpRequest
- Ajax之XMLHttpRequest对象
- AJAX之XMLHttpRequest对象
- AJAX之XMLHttprequest对象
- AJAX之XMLHttpRequest对象
- Ajax之XMLHttpRequest
- AJAX入门之XMLHttpRequest概述
- AJAX入门之XMLHttpRequest概述
- AJAX入门之XMLHttpRequest慨述
- uCOS-II在MSP430上的移植1——准备工作
- memtest 函数
- 重载函数的继承问题
- 归并排序
- C基础面试题精选
- 深入了解Ajax之XMLHttpRequest
- C++ Primer总结(二)
- 支付宝为快捷支付上保险
- Oracle OWI 等待事件历史视图及相关视图
- ubuntu11.10 make android 4.0.3
- 模拟电路与数字电路的区别
- Java值传递以及引用的传递、数组的传递!!
- 其它机可以, 但本机无法上传
- cuda ubuntu install