当Angular的报错把你迷成翔的时候

当Angular的报错把你迷成翔的时候

废话不多说,讲场景。遇到了个接口抛出400错误,然后AngularJS给了个SyntaxError: Unexpected token N报错。(这个错误排查了将近一天的时间,只要你升级了Angular并且接口不规范了一定会报这错误)

原因

AngularJS升级到1.3之后几乎重写了http.js这个文件,对数据请求跟处理更加严格规范。我们的接口由于出现400返回的response是非json格式的字符串,但是后端返回的Response HeadersContent-Type的值是application/json,Angular会按照后端返回的content-type对response进行数据格式转换。这样非标准的json字符串被解析成json肯定会报错。

处理方案

  1. 当出错的时候设置content-typetext/plain
  2. 最优的方案就是遵循一套接口标准,报错了也返回json,而不是字符串。(ps:在开发中最好定义一套接口标准,不要数据的返回格式一会儿字符串一会儿json,返回的json的某些关键字一定要统一。)
收藏 0分享浏览 1252
7年前
跟帖
暂无
说几句
广告位 点击查看投放指南

我的收藏