从这样的渡槽控制器返回响应时
return Response.ok('hello');
响应的正文周围带有引号:
"hello"
当我返回这样的JSON字符串时,同样的事情:
return Response.ok('{"token":"$token"}');
我明白了:
"{\"token\":\"eyJhbG...soOFY8\"}"
这正在搞乱客户端的JSON解析。
有什么方法不发送引号吗?
答案 0 :(得分:0)
响应的默认ContentType已经是JSON。如果要发送平面文本,则需要将内容类型设置为纯文本。
// import 'dart:io';
return Response.ok('hello')..contentType = ContentType.text;
响应正文将为
hello
要发送JSON,只需发送一个Map而不是自己将其转换为字符串:
return Response.ok({'token':token});
这将使响应正文为
{"token":"eyJhbGc...vCxdE"}
感谢Joe Conway上的Aqueduct Slack channel帮助解决此问题。我在这里以问答形式添加解决方案,以便其他人可以更轻松地找到它。