为什么$ http检查响应数据是否为字符串

时间:2014-06-22 07:00:26

标签: angularjs

angular的$ http服务中的数据的默认转换是检查它是否是字符串,如果不返回它是什么。这使得单元测试更容易,因为您可以模拟返回POJO而不是json字符串。

此行为是否有非测试用例?

transformResponse: [function(data) {
  if (isString(data)) {
    // strip json vulnerability protection prefix
    data = data.replace(PROTECTION_PREFIX, '');
    if (JSON_START.test(data) && JSON_END.test(data))
      data = fromJson(data);
  }
  return data;
}]

1 个答案:

答案 0 :(得分:1)

data参数的类型取决于XHR的 responseType

在大多数情况下(默认情况下)它是一个字符串,但是(随着越来越多的浏览器支持XHR Level 2规范( * cough * IE10及以上 *) cough * ))它也可以是ArrayBuffer,Blob,Document或JavaScript对象。