查看$httpbackend
的API,我们可以看到expectPut
等函数最多可以使用4个参数。第二个参数可以是一个带有1个参数的函数:一个字符串。此字符串表示HTTP请求的正文。
但为什么它是一个字符串?它是不是更有意义成为JSON?有没有技术上的原因为什么Angular需要将身体作为字符串而不是JSON给我?
答案 0 :(得分:2)
HTTP请求正文是字符串,以任何其他方式表示它们都没有意义。
在这种情况下,您可能正在将一个对象传递给该函数,但在一个真实的webrequest中,它不能作为一个对象进入服务器,它将是该对象的字符串表示。同样,它可以是任何其他字符串 - 角度无法解析并将任何给定字符串作为对象传递给回调。
没有什么可以阻止你将你的请求序列化为字符串(或让角度在内部执行),然后在回调函数中将其解析为JSON,如果这是你期望的。