在使用uni-app自己封装的网络请求,发现对于同样的后端接口,用uni.request和ajax获取到的数据不同,让人百思不得其解。查了很多的资料和在uni-app社区也没有得到想要的结果。直到那天,风和日丽,鸟语花香,抱着命中不该绝的心态得贵人相助,得到了满意的答案。现整理如下:
错误原因:错误的网络请求头
这是uni-app官网对于自己网络请求方法中header部参数的解释。POST方法不设置的话,会默认是application/json。也是这个原因导致上面两种方法请求到不同的结果 。
解决办法
设置content-type: ‘application/x-www-form-urlencoded’
那也就是说ajax默认的content-type:application/x-www-form-urlencoded,因此我去仔细了解了这两种content-type
application/json与application/x-www-form-urlencoded
如果数据是简单、平面的key-value键值对,那么使用application/x-www-form-urlencoded简单实用,不需要额外的编解码
如果数据是复杂的嵌套关系,有多层数据,那么使用application/json会简化数据的处理
原生app、混合app、Webapp
移动app开发框架(uni-app、5+ mui)系列——1
移动app开发框架uni-app系列——2
移动app开发框架uni-app系列—-填坑