今天使用mui.ajax给服务器发送post请求,结果后端用的php始终得不到前台传上来的数据(使用$_post[]获取值),百度看了不知道多少种解决方案,这里记录一下我的解决方法。
首先看一下官方给的ajax:
mui.ajax(‘http://server-name/login.php‘,{
data:{
username:’username’,
password:’password’
},
dataType:’json’,//服务器返回json格式数据
type:’post’,//HTTP请求类型
timeout:10000,//超时时间设置为10秒;
headers:{‘Content-Type’:’application/json’},
success:function(data){
//服务器返回响应,根据响应结果,分析是否登录成功;
…
},
error:function(xhr,type,errorThrown){
//异常处理;
console.log(type);
}
});
如果是这样去运行,得到的结果就是php的取值代码 post[]处报错,报错信息为 p o s t [ ] 处 报 错 , 报 错 信 息 为 _post[]所取的值为空。
后来才到注意一点,php里面的$_post[]的取值方法只能接收Content-Type: application/x-www-form-urlencoded提交的数据。即将
headers:{'Content-Type':'application/json'},
改为下面的提交方式即可。
headers:{'Content-Type':'application/x-www-form-urlencoded'},
知道真相的我眼泪掉下来,还以为是需要解决跨域问题啥的,结果就是一个忽略浪费自己3个小时,这里特意写出来与大家分享。希望大家能用更多的精力去做有意义的事,而不是被一个自己忽略的简单的问题卡的头皮发麻。。。