为了账号安全,请及时绑定邮箱和手机立即绑定

为什么$_POST超全局变量的值会出现一堆HTML标签

为什么$_POST超全局变量的值会出现一堆HTML标签

PHP
天涯尽头无女友 2019-03-14 15:44:19
通过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

查看完整回答
反对 回复 2019-03-18
?
九州编程

TA贡献1785条经验 获得超4个赞

1、你的ajax测试确实传输了数据到你的后台Demo3.php,这是正确的
2、出现一堆HTML标签是因为那是PHP后台的报错,你应该仔细看报错的内容

Notice : Array to string conversion
//因为你使用了的是echo,输出变量应该是文本,但是你向后台传输的是一个数组,你不应该用echo打印输出,应该使用var_dump

3、ajax确实有返回的结果,那个“正确”的结果其实就在最后一行Array,返回的是一个数组对象

查看完整回答
反对 回复 2019-03-18
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

$_POST是数组,不能使用echo来输出,你使用print_r($_POST);输出吧。

查看完整回答
反对 回复 2019-03-18
  • 3 回答
  • 0 关注
  • 506 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信