在使用uni-app自己封装的网络请求,发现对于同样的后端接口,用uni.request和ajax获取到的数据不同,让人百思不得其解。查了很多的资料和在uni-app社区也没有得到想要的结果。直到那天,风和日丽,鸟语花香,抱着命中不该绝的心态得贵人相助,得到了满意的答案。现整理如下:

移动app开发框架uni-app系列—-填坑
移动app开发框架uni-app系列—-填坑
移动app开发框架uni-app系列—-填坑
移动app开发框架uni-app系列—-填坑

错误原因:错误的网络请求头

这是uni-app官网对于自己网络请求方法中header部参数的解释。POST方法不设置的话,会默认是application/json。也是这个原因导致上面两种方法请求到不同的结果 。

解决办法
设置content-type: ‘application/x-www-form-urlencoded’

移动app开发框架uni-app系列—-填坑

那也就是说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系列—-填坑

相关文章:

  • 2021-05-29
  • 2021-11-23
  • 2022-01-18
  • 2022-01-01
  • 2021-10-13
  • 2021-11-13
猜你喜欢
  • 2021-12-29
  • 2021-09-02
  • 2021-11-14
相关资源
相似解决方案