使用transformRequest将字符串转换为$ http.get请求的可用输出?

时间:2015-07-23 17:32:00

标签: json angularjs http cookies web-applications

我有一个发送$ http.get请求的Web应用程序,该请求成功后会返回以下格式的纯文本字符串(而不是JSON):" Hello!"。我不想改变后端,并且想知道是否有某种方法可以改变我的$ http的transformRequest属性来处理它接收字符串而不是JSON的事实。现在我在改变transformRequest之前收到当前错误:

SyntaxError: Unexpected token H

这与返回值有关(第一个字母是' H')我假设它是因为它想要一个JSON对象但是正在接收一个字符串。所以我的问题是:我是否可以在前端(在$ http.get中)更改只处理接收字符串而不是JSON对象?

另外,我确定有更好的方式来标记问题标题,因此欢迎进行修改。

1 个答案:

答案 0 :(得分:0)

我在发布后立刻想出来了。因为angular的$ http.get期望一个JSON对象,所以它的默认'transformResponse'函数会尝试将其解析为JSON。我需要做的就是覆盖transformResponse,简单地返回我在其基本形式中吐出的数据,如下所示:

var request = $http({
  method: 'GET',
  url: 'http://localhost:8080/message',
  headers: {'token': _userToken},
  transformResponse: function(data) {
    return data;
  }
});