通过Ajax以post请求向服务器提交数据,在PHP中输出$_POST超全局变量的值。输出结果如下图
代码如下:
//demo3.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="Demo3.php" method="POST">
用户名:<input type='text' name='username' id='un'><br/>
密码:<input type='text' name='password' id='pw'><br/>
<input type='submit' id='submit' value='提交'>
</form>
<p id='tips'></p>
</body>
</html>
<script>
var submit_btn = document.getElementById('submit');
var xhr = new XMLHttpRequest();
submit_btn.onclick = function(e){
e.preventDefault();
xhr.onreadystatechange = function(){
if(xhr.readyState==4 && xhr.status==200){
alert(xhr.responseText);
}
}
var username = document.getElementById('un').value; //获得文本输入框中的内容
var data = 'username='+username;
xhr.open('post','Demo3.php');
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode');
xhr.send(data);
}
</script>
//Demo3.php
<?php
echo ($_POST);
有木有大神知道问题出在哪里。。。
3 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
得到空数组应该是Header头的问题,Content-Type
应该是application/x-www-form-urlencoded
吧。少了个字母d
九州编程
TA贡献1785条经验 获得超4个赞
1、你的ajax测试确实传输了数据到你的后台Demo3.php,这是正确的
2、出现一堆HTML标签是因为那是PHP后台的报错,你应该仔细看报错的内容
Notice : Array to string conversion
//因为你使用了的是echo,输出变量应该是文本,但是你向后台传输的是一个数组,你不应该用echo打印输出,应该使用var_dump
3、ajax确实有返回的结果,那个“正确”的结果其实就在最后一行Array,返回的是一个数组对象
- 3 回答
- 0 关注
- 506 浏览
添加回答
举报
0/150
提交
取消