**问题起因:**在写uniapp的程序中 一个接口 在h5端可以正常跑通,但在安卓机上调试时一个接口总是不通,但是其他接口正常通过,可以拿到相应的数据,由于后端的接口是由一个智能盒子提供的,只能通过前端进行排查,通过Fiddler 抓包和h5的接口进行对比 最后锁定bug 是由于 uniapp编译安卓接口请求时 content-type:application/json 后面会自动加上 utf-8的后缀,导致接口不通过(接口有校验 必须为content-type:application/json),但是安卓编译后的请求头为content-type:application/json; charset=utf-8
如图:
解决思路:
所以我们需要 想办法去掉这个后缀,但这个后缀又不是我们代码所添加上去的,是编译后自己加上去的,开始有试过拿uniapp插件的其他请求方式进行请求,但是都是基于uni.request 进行封装的,有试过市场上两到三款请求工具,最后编译完这个请求的后缀仍去不掉。
最终解决
最后解决 是去uniapp社区搜索关键字 ‘content-type’ 搜到了一种应该是uniapp老版本的请求方式,虽然问题跟我遇到的不一样,但是让我知道了uniapp 除了 uni.request请求外 还可以用XMLHttpRequest方式进行请求
如图:
如图14年的回答…现在应该基本没人用这种方式进行请求了。
于是用这种请求方式在安卓真机上调试,结果可以正常获取到数据,utf-8的后缀成功去掉看到久违200状态码!如图:
最后贴上代码: