微信小程序在开发工具中请求接口正常,上线后请求接口总是失败??

微信小程序在开发工具和部分手机上请求接口时遇到问题,接口请求失败。问题根源在于请求地址包含中文字符,部分设备不对其进行编码。解决方案是利用JavaScript的encodeURI方法对restful接口中的变量值进行编码,避免全地址编码导致错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题

本地小程序开发工具测试请求接口都很正常,使用预览和真机调试功能在手机上运行请求接口总是失败。

小程序上线后,部分手机请求接口正常,部分手机请求接口失败,将请求接口复制到谷歌浏览器中查询总是成功的。

二、原因分析

restful 接口定义为:https://ip:port/bus/:router_name,其中 router_name 是个变量。实际请求接口为:https://ip:port/bus/993路,可以看到:请求地址中的变量router_name993路 给替换了。问题就出在这里,请求地址中含有中文

小程序开发工具谷歌浏览器部分请求成功的手机 上最终发出的请求都会对请求地址中的中文汉字进行编码,如下:

对请求地址中的中文进行编码

开发工具中预览功能开发工具中真机调试功能部分请求不成功的手机 上最终发出的请求并不会对中文进行编码,如下:

image.png

三、解决方法

上面分析了请求接口失败是因为部分手机没有对请求地址中的中文进行编码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值