fetch拿到响应后怎么读JSON?先处理状态与异步结果
fetch返回响应对象后,读取JSON仍是一个异步过程。还要检查HTTP状态与接口实际内容。把网络请求、正文解析和业务错误分开处理,能够避免“请求完成但字段没有值”的调试混乱。
官网实操:用自建样例展示payload中仍是字符串的结构,外层格式化不会自动将内层文本变成对象,具体业务读取仍需按约定处理。
区分网络失败和HTTP失败
连接本身失败时,请求可能进入异常处理;服务器返回某些错误状态时,fetch仍可能正常给出响应对象。应检查响应对象的成功标志及状态码,并依据接口约定读取错误体,不能把异步过程已完成理解成业务已成功。
正文读取通常只能消费一次
对响应对象调用JSON读取方法并等待返回,负责完成正文读取与解析,返回值才是后续要用的数据。调试时若先调用text()再读json(),可能遇到正文已被消费的问题。需要两份观察时,按环境支持方式复制响应,而不是反复读取同一流。
跨域权限由服务端共同决定
CORS不是JSON格式的一部分。只修改前端数据写法,不能让浏览器绕过服务端跨域规则。JSONP则是利用脚本载入的另一种历史机制,安全与方法限制不同,不宜当作通用Ajax替代方案。
先验证样本,再检查应用状态
遇到解析异常,保存脱敏返回值放入KKCE JSON工具查看是否合法。如果实际是登录页或网关提示,应回到认证与路由处理。接口结构合法后,再核对字段、空值和错误分支,让解析成功与业务成功各有明确条件。
下一篇:
做GEO之前,先给文章做一次可访问性体检