java知识总结-20

*****************************************
重要: ajax 的text 返回字符串可能带有空格 换行, 可以用 r.replace(/ /g,"") 方法替换得到没有空格 换行的字符串

ajax 发送请求
XMLHttpRequest 对象可以发送请求
open(); 用于打开一个连接
send(Str); 用于发送请求 str仅用于 post 方法
onreadystatechange; 用于得到服务器响应后处理的动作,因为是异步的 所以方法运行时间取决于服务器响应时间


get 和 post 选择
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。
然而,在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠

创建一个XMLHttpRequest 对象
IE7+、Firefox、Chrome、Safari 以及 Opera)均内建 XMLHttpRequest 对象。
创建 XMLHttpRequest 对象的语法:
variable=new XMLHttpRequest();
老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:
variable=new ActiveXObject("Microsoft.XMLHTTP");
专业写法:
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

XMLHttpRequest 的属性:
onreadystatechange 是XMLHttpRequest 的属性(决定响应后执行的函数如何写)
每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState 存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
status 属性 存储着结果状态
200: "OK"
404: 未找到页面


***得到服务器的响应内容:
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
responseText 获得字符串形式的响应数据。
responseXML 获得 XML 形式的响应数据。


例子:
//创建一个XMLHttpRequest 对象
//定义一个请求的 URL 和请求数据
var url = "/scripts/getZipCode.php?city=" + escape(city) + "&state=" + escape(state);
//打开一个请求 请求方法 URL 是否异步
xmlHttp.open("GET", url, true);
//设置得到响应后执行的方法 updatePage
xmlHttp.onreadystatechange = updatePage;
//发送给请求
xmlHttp.send(null);

//updatePage 方法
function updatePage(){
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
}

原文地址:https://www.cnblogs.com/flytwosky/p/7203688.html