ajax学习笔记之get&post

//通用部分

var xhr;

try { xhr = new XMLHttpRequest(); }                                             //兼容非标准ie

catch(e) { xhr = ActiveXObject('Microsoft.XMLHTTP'); }


//第二参数为地址(php文件),第三个参数为是否异步

//get方式  提交的数据直接跟在url?后面键值对形式用&连接

xhr.open('get', ‘getNews.php?username=li&age=18‘, true);           

xhr.send();

/***************get方式问题*****************************************/

1)缓存   如果第一次请求过的url,即第二个参数不变,则不会重新请求,直接用缓存中的数据

可以加个时间戳  ‘getNews.php?username=li&age=18&‘ + new Date().getTime()

2)编码 中文乱码

使用encodeURI()  ‘getNews.php?username=' + encodeURI('小明') + '&age=18&‘ + new Date().getTime()

/**********************************************************************/

//post方式 

xhr.open('post', ‘getNews.php’, true);

xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');             //确定提交数据的格式

xhr.send(‘username=li&age=18’);


//通用部分

xhr.onreadystatechange = function(){              //请求状态发生改变会回调该函数

if (xhr.readtState == 4) {               //请求状态  0 未连接  1 打开连接  2 发送请求   3 交互   4 完成交互

if (xhr.status == 200) {        //请求资源的状态 就是http状态码  

//对资源的操作...

}

else{

//资源错误提示...

}

}

}


GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器
GET - 从指定的资源请求数据    POST - 向指定的资源提交要处理的数据
当请求无副作用时(如进行搜索),只应当用于取回数据,便可使用GET方法;
当请求有副作用时(如添加数据行),则用POST方法

get方式 
1)浏览器或是操作系统对URl的长度有限制 所以提交的数据就有长度限制
2)请求的数据会被浏览器缓存起来 可从历史记录中获取 存在安全隐患
3)请求数据类型只允许 ASCII 字符


//通过表单提交

ajax学习笔记之get&post


ajax学习笔记之get&post