对于Ajax技术现在很多人都不陌生了,习惯了用ExtJS或Jquery等JS库封装的Ajax。记得哪天朋友问题怎样手动创建一个XMLHttpRequest 对象?愣了半分钟,还是写一写吧。
var xmlhttp; function createRequest() { if (window.ActiveXObject) { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } } createRequest(); function sendRequest() { if(xmlhttp) { xmlhttp.open("GET", url, true); xmlhttp.send(null); xmlhttp.onreadystatechange = getRequestAndManager; } } function getRequestAndManager() { if (xmlhttp_request.readyState == 4) {// 收到完整的服务器响应 if (xmlRequest.status == 200) { var requestReturnStr = xmlhttp.responseText; var json = eval("("+requestReturnStr+")"); } } }
与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用。如果不需要使用缓存数据可以在URL后面添加一个时间戳,以保证每次请求的数据都和服务器保持一致。
然而,在以下情况中,请使用 POST 请求:
- 无法使用缓存文件(更新服务器上的文件或数据库)
- 向服务器发送大量数据(POST 没有数据量限制)
- 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠