我是一名全职后端开发人员,刚开始为我自己的一些项目学习角度。
默认情况下,似乎有角度$http
请求作为JSON字符串发送。我目前正在重写transformRequest
方法,以便像jquery一样对其进行参数化。我的后端框架(Phalcon PHP)以这种方式接收它更方便。
在我开始这条道路之前,有没有以这种方式构建它的缺点?单元测试或使用第三方模块有什么问题吗?
修改
为了澄清,angular将POST作为JSON字符串发送到正文中。我用过的jQuery和其他框架像form-urlencded一样发送: 名称=乔纳森+ Doe的安培;年龄= 23&安培;式= A +%2B + B +%3D%3D + 13%25%21 http://en.wikipedia.org/wiki/POST_%28HTTP%29#Use_for_submitting_web_forms
其中,也许是由于内容标题填充了PHP中的$ _POST全局(我假设)与表单数据;
答案 0 :(得分:3)
我建议你坚持使用JSON格式并在JSON请求体中发送数据而不是key = value param对。您可以在Phalcon中使用Request::getJsonRawBody()
干净地接收JSON。
主要区别在于POST vars格式允许您发送key = value数据对。当涉及到更复杂的结构(数组,关联数组,嵌套对象等)时,您将开始遇到需要以某种方式解决的问题。如果在POST / PUT请求体中发送JSON对象,则不会发生这种情况。当然,您可以在AngularJS和Phalcon中对OOTB进行序列化和反序列化。
您应该强烈考虑仅针对GET参数的key = value params以及针对其他所有内容的JSON数据。显然,你可以将这两者混合在一起(我的意思是,即将您的文章的新内容作为PUT请求发送给JSON正文,但在URL中指定文章ID,如/article?id=123
)。