如何在js中接收后台传来的数组

JavaScript013

如何在js中接收后台传来的数组,第1张

<!DOCTYPE html>  

<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

}