ajax的post请求
get和post是http请求方法最主要的两种方式。
post:
来个例子test.html
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <input type="password" id="password"> <input type="button" value="submit" id="submit"> <div id="txt"></div> <script> //监听对象 document.getElementById('submit').onclick = function(){ var password = document.getElementById('password').value; var url = "index.php?password=" + password; post(url,function(data){ document.getElementById('txt').innerHTML = data; }) } //简单的post封装 function post(url,callback,async){ var xhr = new XMLHttpRequest(); async = async ? async :true; xhr.onreadystatechange = function(){ if(xhr.readyState == 4){ callback(xhr.responseText); } } xhr.open("post",param(url)[0],async); xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded") xhr.send(param(url)[1]); } function param(url){ var arr = url.split("?"); return arr; } </script> </body> </html>
index.php
<?php echo "your password is ".$_POST['password']; ?>
说明一下:post所请求的页面是无法使用缓存,跟get一样的是,post这中请求方式一般也是采用异步。但是还有一个问题没有搞明白,post传递的url中的字符串参数是否需要编码?