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中的字符串参数是否需要编码?

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。