最後更新:2016-06-06
來源:互聯網
上載者:User
關鍵字
php
ajax-傳回值
post
get
GET方式
document.getElementById("save").onclick=function(){ var request=new XMLHttpRequest(); request.open("GET","http://localhost/service.php?username="+document.getElementById("stuname").value+"&number="+document.getElementById("stunumber").value+"&sex="+document.getElementById("stusex").value+"&job="+document.getElementById("stujob").value); request.send(null); request.onreadystatechange=function(){ if(request.readyState===4){ if(request.status===200){ document.getElementById("saveResult").innerHTML=request.responseText; }else{ alert("發生錯誤la :"+request.status); } } } }service.php $username=$_GET['username']; $password=$_GET["number"]; $sex=$_GET["sex"]; $job=$_GET["job"]; if(($username=="11")&&($password)&&($sex)&&($job)){ echo '{"success":"true","msg":"學生添加成功"}'; }else{ echo '{"success":"false","msg":"參數錯誤,填寫資訊不全"}'; } 結果:是正確的。但是,換為post傳遞,就有問題,代碼如下: document.getElementById("save").onclick=function(){ var request=new XMLHttpRequest(); var data="name1="+document.getElementById("stuname").value+"&number="+document.getElementById("stunumber").value+"&sex="+document.getElementById("stusex").value+"&job="+document.getElementById("stujob").value; request.open("POST","http://localhost/service.php"); request.setRequestHeader("Content-Type","appliaction/x-www-form-urlencoded"); request.send(data); request.onreadystatechange=function(){ if(request.readyState===4){ if(request.status===200){ document.getElementById("saveResult").innerHTML=request.responseText; } else{ alert("發生錯誤la :"+request.status); } } } } service.php代碼: var_dump($_SERVER['REQUEST_METHOD']);//為了測試用 $username=$_POST['name1']; $password=$_POST["number"]; $sex=$_POST["sex"]; $job=$_POST["job"]; if(($username=="11")&&($password)&&($sex)&&($job)){ echo '{"success":"true","msg":"學生添加成功"}'; } else{ echo '{"success":"false","msg":"參數錯誤,填寫資訊不全"}'; }
結果為:
string(4) "POST" Notice: Undefined index: name1 in D:phpstudyWWWservice.php on line 23 Notice: Undefined index: number in D:phpstudyWWWservice.php on line 24 Notice: Undefined index: sex in D:phpstudyWWWservice.php on line 25 Notice: Undefined index: job in D:phpstudyWWWservice.php on line 26 {"success":"false","msg":"參數錯誤,填寫資訊不全"} ,這個是為什麼呢?我哪裡寫的有問題?請高人指點,謝謝!
回複內容:
GET方式
document.getElementById("save").onclick=function(){ var request=new XMLHttpRequest(); request.open("GET","http://localhost/service.php?username="+document.getElementById("stuname").value+"&number="+document.getElementById("stunumber").value+"&sex="+document.getElementById("stusex").value+"&job="+document.getElementById("stujob").value); request.send(null); request.onreadystatechange=function(){ if(request.readyState===4){ if(request.status===200){ document.getElementById("saveResult").innerHTML=request.responseText; }else{ alert("發生錯誤la :"+request.status); } } } }service.php $username=$_GET['username']; $password=$_GET["number"]; $sex=$_GET["sex"]; $job=$_GET["job"]; if(($username=="11")&&($password)&&($sex)&&($job)){ echo '{"success":"true","msg":"學生添加成功"}'; }else{ echo '{"success":"false","msg":"參數錯誤,填寫資訊不全"}'; } 結果:是正確的。但是,換為post傳遞,就有問題,代碼如下: document.getElementById("save").onclick=function(){ var request=new XMLHttpRequest(); var data="name1="+document.getElementById("stuname").value+"&number="+document.getElementById("stunumber").value+"&sex="+document.getElementById("stusex").value+"&job="+document.getElementById("stujob").value; request.open("POST","http://localhost/service.php"); request.setRequestHeader("Content-Type","appliaction/x-www-form-urlencoded"); request.send(data); request.onreadystatechange=function(){ if(request.readyState===4){ if(request.status===200){ document.getElementById("saveResult").innerHTML=request.responseText; } else{ alert("發生錯誤la :"+request.status); } } } } service.php代碼: var_dump($_SERVER['REQUEST_METHOD']);//為了測試用 $username=$_POST['name1']; $password=$_POST["number"]; $sex=$_POST["sex"]; $job=$_POST["job"]; if(($username=="11")&&($password)&&($sex)&&($job)){ echo '{"success":"true","msg":"學生添加成功"}'; } else{ echo '{"success":"false","msg":"參數錯誤,填寫資訊不全"}'; }
結果為:
string(4) "POST" Notice: Undefined index: name1 in D:phpstudyWWWservice.php on line 23 Notice: Undefined index: number in D:phpstudyWWWservice.php on line 24 Notice: Undefined index: sex in D:phpstudyWWWservice.php on line 25 Notice: Undefined index: job in D:phpstudyWWWservice.php on line 26 {"success":"false","msg":"參數錯誤,填寫資訊不全"} ,這個是為什麼呢?我哪裡寫的有問題?請高人指點,謝謝!
post 用$_POST取 如果你又想取get 還想取post 可以用 $_REQUEST
因為你 PHP 中是用$_GET 所以當然只能擷取get傳遞過來的值
$_GET 擷取 url串連中的參數 $_POST 擷取 post提交的參數 $_REQUEST 可以擷取到get和post的參數
你的案例裡,用$_GET是擷取不到Post參數的。
post請求時參數格式不正確,換成var postData = { "name1": "value1", "name2": "value2"} 這樣試一試。可以F12調試一下。