Ajax技术的核心是XMLHttpRequest对象(简称XHR),
var xhr = new XMLHttpRequest();
function createXHR(){
if (typeof XMLHttpRequest != "undefined"){
return new XMLHttpRequest();
} else if (typeof ActiveXObject != "undefined"){
if (typeof arguments.callee.activeXString != "string"){
var versions = [ "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp"],
i, len;
for (i=0,len=versions.length; i < len; i++){
try {
new ActiveXObject(versions[i]);
arguments.callee.activeXString = versions[i];
break;
} catch (ex){
//跳过
}
}
}
return new ActiveXObject(arguments.callee.activeXString);
} else {
throw new Error("No XHR object available.");
}
}
2.xhr.open("get", "example.txt", false);
xhr.send(null);
3.responseText:作为响应主体被返回的文本。
 responseXML:如果响应的内容类是"text/xml"或"application/xml",这个属性中将保 存包含着响应数据的XML DOM 文档。
4.
0:未初始化。尚未调用open()方法。
1:启动。已经调用open()方法,但尚未调用send()方法。
2:发送。已经调用send()方法,但尚未接收到响应。
3:接收。已经接收到部分响应数据。
4:完成。已经接收到全部响应数据,而且已经可以在客户端使用了。
eg:
(get请求)var xhr = createXHR();
xhr.onreadystatechange = function(){
if (xhr.readyState == 4){
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){
alert(xhr.responseText);
} else {
alert("Request was unsuccessful: " + xhr.status);
}
}
};
xhr.open("get", "example.txt", true);
xhr.send(null);
(post请求)function submitData(){
var xhr = createXHR();
xhr.onreadystatechange = function(){
if (xhr.readyState == 4){
if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){
alert(xhr.responseText);
} else {
alert("Request was unsuccessful: " + xhr.status);
}
}
};
xhr.open("post", "postexample.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var form = document.getElementById("user-info");
xhr.send(serialize(form));
}

最新文章

  1. NXP恩智浦P89V51RB2/RC2/RD2单片机解密芯片破解方法!
  2. 简单了解JS 中的indexOf方法
  3. bitnami redmine每日自动备份
  4. JAVA类与对象
  5. Map接口
  6. JavaScript学习笔记6 之经典神坑题整理
  7. 在OSX下卸载Xamarin
  8. Git push 时每次都需要密码的疑惑
  9. 多线程与Socket编程
  10. struts2面试题
  11. Ubuntu 14.04安装Sogou输入法
  12. Asp.Net MVC4.0 官方教程 入门指南之二--添加一个控制器
  13. Sublime Text 3 常用快捷键
  14. EFCore中 join on的不同
  15. [Swift]LeetCode767. 重构字符串 | Reorganize String
  16. 连接oracle数据库
  17. 剑指offer-01
  18. 解决 js setTimeout 传递带参数的函数无效果
  19. Vivado Design Suite用户指南之约束的使用第一部分(介绍部分)
  20. python 正则括号的使用及踩坑

热门文章

  1. python sorted函数的小练习
  2. 「LuoguP2420」 让我们异或吧(树上前缀和
  3. doc命令大全
  4. tomcat 的一些知识
  5. android开发中怎么通过Log函数输出当前行号和当前函数名
  6. 1.js 模拟a标签打开新网页
  7. POJ-3629
  8. 6、html的body内标签之超链接
  9. shell编程流程控制
  10. UVa 10213 How Many Pieces of Land ? (计算几何+大数)