uniapp数据post请求后台无法接收问题
最近在做一个uniapp的项目,数据接口很多,玩起来也有点繁杂。在进行到一半的时候,发现有几个post提交的接口一直返回空指针错误,问后端人员发现是前端参数为空导致的。但是问题在于,我前台的参数写得明明白白的,请求方式也是照着官网教程来,按道理不会空值,结果百度一查就发现,这里竟然是uniapp的一个小坑。所以,在解决问题之后,还是把方法记录下吧,传控制指定请求header为如下。
以下是我的一个完整请求
var data={
version: "1.0",
code: "100",
client:"ios"
};
uni.request({
url: "请求地址",
method: 'post',
header: {
'content-type': 'application/x-www-form-urlencoded',
},
data: data,
success: res => {
//返回值输出
//console.log(JSON.stringify(res));
}
})
这里的请求方式是封装好的,同时兼容安卓苹果浏览器和小程序,具体可以看之前的文章uniapp详细入门教程,半小时傻瓜式学会app开发。其实uniapp官方的请求方式也给得很详细,所以也可以自己去参考,毕竟决定请求能让后台接收的,是下面的代码。
header: {
'content-type': 'application/x-www-form-urlencoded',
},
就这样,问题解决了。
其实导致接收不到的原因也很奇怪,在其它的框架底下用同样的传值方式就可以,但是uniapp中就不行。而且后台有些接口采用的不同的接收传值方式,也可以同样获取到post传值,但是部分接口又会获取不到。不过这也不是我这个前端开发能研究的问题了。