处理角度js中的http文本/普通响应

时间:2016-02-04 10:08:54

标签: javascript jquery html angularjs

我需要在GUI上显示来自POST API的text/plain响应。下面是我的http post操作代码。

$http.post("/compare").success(function(data){
        cb(data);
     }).error(function(error){
         eb(error);
     });

在尝试以json格式解析响应时获得以下错误。

SyntaxError: Unexpected token 
    at Object.parse (native)
    at fromJson

来自API的实际响应,它还包含制表符和换行符:

Response header: content-type:text/plain
Response payload:         
{
  "output": {
    "diff": "
 apples {
     apple 101 {
         conf {
             test {
                 forward {
-                    mac AABB.CCDD.EEFF;
+                    mac B222.2BBB.2222;
                 }
             }
         }
     }
 }
"
}

当我尝试使用jquery ajax调用时,我能够处理来自API的text / plain响应。 有没有办法处理角度帖子中的文字/普通回复?

1 个答案:

答案 0 :(得分:0)

有效负载是有效JSON的一个尾随}。您是否格式化/剪切结果错误或者这是否真的是(无效)结果?

也就是说,你在成功回调中得到的data只是一个字符串,所以在评论中提到的人,你需要解析字符串以获得一个有效的javascript对象:

cb(JSON.parse(data));

看看这个例子: https://fiddle.jshell.net/o6s37mha/并打开你的控制台(在你运行它之前点击F12)如果你想看到差异。