Javascript 在angular js中处理http文本/普通响应
我需要在GUI上显示PostAPI的Javascript 在angular js中处理http文本/普通响应,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,我需要在GUI上显示PostAPI的text/plain响应。下面是我的http post操作代码 $http.post("/compare").success(function(data){ cb(data); }).error(function(error){ eb(error); }); 试图以json格式解析响应时出现以下错误 SyntaxError: Unexpected token at Object.parse (n
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;
}
}
}
}
}
"
}
当我尝试使用jQueryAjax调用时,我能够处理来自API的文本/普通响应有没有办法在angular post中处理文本/普通响应?有效负载是有效JSON的一部分。您是否格式化/剪切了错误的结果,或者这真的是(无效的)结果 也就是说,您在成功回调中得到的
数据
将只是一个字符串,因此正如评论中提到的,您需要解析该字符串以从中获得有效的javascript对象:
cb(JSON.parse(data));
看看这个例子:
如果您想看到差异,请打开控制台(在运行前点击F12)。
cb(JSON.parse(data))
如果它是json字符串,则解析它。@Jai,我假设这也不是有效的json。.您可以尝试设置$http@RayonDabre的responseType
属性,但OP说它与jQuery一起工作。“diff”变量是字符串,他的内容不是json。。。您需要解析这个字符串,它是一种特定的diff格式。