php后台get请求返回结果,ajax-返回值 - 在使用ajax时,为什么使用get可以在后台php页面中获得值,而post确不行?...

GET方式

document.getElementById("save").οnclick=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").οnclick=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").οnclick=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").οnclick=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调试一下。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值