<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<title>XHR数据交换</title>
</head>
<body>
<form action="index.php" method="post" onsubmit="return test()">
姓名:<input type="text" name="username"/><br />
年龄:<input type="text" name="age"/><br />
身高:<input type="text" name="sengao"/><br />
<input type="submit" />
</form>
<div></div>
<script type="text/javascript">
function test(){
//获取dom节点
var fm = document.getElementsByTagName('form')[0]
//利用HTML5 FormData对象获取表单数据
//并把DOM表单对象作为参数传给FormData
var fD = new FormData(fm)
//可以追加数据
fD.append('xuexing','A')
//创建XML请求
var xhr = new XMLHttpRequest()
//打开链接,异步请求
xhr.open('POST','index.php',true)
//发送表单数据
xhr.send(fD)
//事件响应
xhr.onreadystatechange = function (){
//接受到后台返回数据时,写入到div文本节点内
if(this.readyState == 4){
document.getElementsByTagName('div')[0].innerHTML = this.responseText
}
}
return false
}
</script>
</body>
</html>
post的话是没有办法直接获取得
如果是同一个页面,考虑直接用js函数获取,不提交
如果是不同页面,只能通过ajax变成get方式
get的话,一个正则.二是split,具体如下
办法一: 正则
function getAction(name) {
var reg = new RegExp("(^|&)" + name
+ "=([^&]*)(&|$)", "i")
var r =
window.location.search.substr(1).match(reg)
if (r != null) return
unescape(r[2])return null
}
办法二: split
function getAction() {
var url = location.search//获取url中"?"符后的字串
var theRequest = new Object()
if (url.indexOf("?") != -1) {
var str = url.substr(1)
strs = str.split("&")
for(var i = 0i <strs.lengthi ++) {
theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1])
}
}
return theRequest
}