zero 设置消息超时_%E2%80%8E(Zero-Width Space)

1819249a87b268dcf1d009b9f8e4752e.png
笔者声明,本文为个人原创作品,转载请注明出处

从swagger复制接口地址,发送请求却返回了404。

打印请求的config查看,地址并无异常

e9e68c30de0eea1e4bfe0bcdf3cfce89.png
反复查看config.url,肉眼所见并无异常

再抓包查看

1cc50b7704b730c6efdc9190e591f4b7.png
请求网址中出现了不明的字符:%E2%80%8E

搜索发现,%E2%80%8E的学术名词叫 Zero-width-space(零宽空格) ,顾名思义,它是一个Unicode字符,却肉眼不可见。

解决方案:

  1. 删除复制的地址,手敲一遍;
  2. 在请求拦截器里对url进行字符过滤。(推荐,一劳永逸)
axios请求拦截器示例代码
// 创建axios实例
const request = axios.create({
  baseURL: "你想设置的baseURL", // url = base url + request url
  timeout: 5000 // 超时时间
});

// 请求拦截器
request.interceptors.request.use(
  config => {
    // 先把config.url进行URI编码,然后全局替换其中的特殊字符,然后再URI解码
    config.url = decodeURI(encodeURI(config.url).replace(/%E2%80%8B/g,""))
    return config;
  },
  error => {
    console.log(error); // for debug
    return Promise.reject(error);
  }
);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值