踩坑记录:errno: 600009, errMsg: “request:fail invalid url http://xxxxxxxxxx“

踩坑记录:

uniapp开发微信小程序时,在网络请求中遇到这个报错:

 {errno: 600009, errMsg: "request:fail invalid url "http://xxxxxx:8080​/loginWithWx""}

调查解决:

在排除接口问题,和网络请求工具类的问题后,决定走查,uniapp生成的小程序代码,从小程序代码中看看有什么问题,打上代码断点发现,url地址中有一个红点,以为代码中url 存在空格,检查后发现后发现并没有空格;
踩坑记录:errno: 600009, errMsg: “request:fail invalid url http://xxxxxxxxxx“_第1张图片
就很奇怪;于是鼠标放到红点上发现 显示 “\u200b” 字样
踩坑记录:errno: 600009, errMsg: “request:fail invalid url http://xxxxxxxxxx“_第2张图片
仅百度 发现一个新的字符:“零宽字符” 零宽字符(u200b)

发现问题所在,就是这个隐性字符导致的接口问题,然后如何删除这个字符又是一个问题,因为零宽字符,常规删除,删不了到指定字符。

这里处理方法是将目标代码串,通过站长工具网站,转换成Unicode 字符 串,然后找到 u200b,将其删除,再将删除后字符串,再转换成目标代码,即可完成 零口字符的删除;
踩坑记录:errno: 600009, errMsg: “request:fail invalid url http://xxxxxxxxxx“_第3张图片
从而解决问题;

知识点记录:

不可见字符\u200b:
它可以出现在字符串的任何位置;
它不显示出现,不代表它不占位置,它这个整体算是一个字符;
可以通过 indexOf 等方法获取它的位置

var str = '测试\u200b不可见字符'
console.log(str, str.length) // 测试​不可见字符 8
console.log(str.indexOf('\u200b')) // 2

需要使用的场景:
需要对字符串进行分割时,给字符串唯一标识时,可以使用该方法。

你可能感兴趣的:(http,网络协议,网络)