为什么expectPUT / POST / etc将请求主体表示为字符串?

时间:2015-11-10 19:51:20

标签: javascript angularjs http httpbackend angular-mock

查看$httpbackend的API,我们可以看到expectPut等函数最多可以使用4个参数。第二个参数可以是一个带有1个参数的函数:一个字符串。此字符串表示HTTP请求的正文。

但为什么它是一个字符串?它是不是更有意义成为JSON?有没有技术上的原因为什么Angular需要将身体作为字符串而不是JSON给我?

1 个答案:

答案 0 :(得分:2)

HTTP请求正文字符串,以任何其他方式表示它们都没有意义。

在这种情况下,您可能正在将一个对象传递给该函数,但在一个真实的webrequest中,它不能作为一个对象进入服务器,它将是该对象的字符串表示。同样,它可以是任何其他字符串 - 角度无法解析并将任何给定字符串作为对象传递给回调。

没有什么可以阻止你将你的请求序列化为字符串(或让角度在内部执行),然后在回调函数中将其解析为JSON,如果这是你期望的。