通过Ajax以post请求向服务器提交数据,在PHP中输出$_POST超全局变量的值。输出结果如下图代码如下://demo3.html<!DOCTYPE html><html><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 回答
婷婷同学_
TA贡献1844条经验 获得超8个赞
1、你的ajax测试确实传输了数据到你的后台Demo3.php,这是正确的
2、出现一堆HTML标签是因为那是PHP后台的报错,你应该仔细看报错的内容
Notice : Array to string conversion
//因为你使用了的是echo,输出变量应该是文本,但是你向后台传输的是一个数组,你不应该用echo打印输出,应该使用var_dump
3、ajax确实有返回的结果,那个“正确”的结果其实就在最后一行Array,返回的是一个数组对象
添加回答
举报
0/150
提交
取消