问题现象描述
json字符串头部出现非法字符“\ufeff”的问题导致JSON.parse解析失败处理,报错信息如下
SyntaxError: Unexpected token in JSON at position 0
问题原因
服务端某个配置文件编码是 UTF-8 + BOM,输出的字符串最开始包含了 BOM 字符,不是合法的 JSON
解决方案
方案一
先 trim 字符串,再JSON.parse。
JSON.parse(res.data.replace(/^[\s\uFEFF\xa0\u3000]+|[\uFEFF\xa0\u3000\s]+$/g, ''))
方案二
和后端协商更改文件编码格式