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

你可能感兴趣的:(Ajax)