javascript - 参数化 Angular 请求的优缺点

标签 javascript angularjs angular-http

我是一名全职后端开发人员,刚刚开始为我自己的一些项目学习 Angular。

默认情况下, Angular $http 请求似乎作为 JSON 字符串发送。我目前正在重写 transformRequest 方法以像 jquery 一样对其进行参数化。这样我的后端框架(Phalcon PHP)接收它更方便。

在我选择这条道路之前,以这种方式构建它有什么缺点吗?单元测试或使用第三方模块有任何问题吗?

编辑

澄清一下,Angular 在正文中将 POST 作为 JSON 字符串发送。我使用 jQuery 和其他框架作为表单 URL 发送,例如: 姓名=乔纳森+多伊&年龄=23&公式=a+%2B+b+%3D%3D+13%25%21 http://en.wikipedia.org/wiki/POST_%28HTTP%29#Use_for_submitting_web_forms

这可能是由于内容 header 用表单数据填充了 php 中的 $_POST 全局(我假设);

最佳答案

我建议您坚持使用 JSON 格式并在 JSON 请求正文中发送数据,而不是使用 key=value 参数对。您可以使用 Request::getJsonRawBody() 干净地接收 JSON在菲尔康。

主要区别在于 POST vars 格式允许您发送键=值对的数据。当涉及到更复杂的结构(数组、关联数组、嵌套对象等)时,您将开始遇到必须以某种方式解决的问题。如果您在 POST/PUT 请求正文中发送 JSON 对象,则不会发生这种情况。当然,您还可以在 AngularJS 和 Phalcon 中序列化和反序列化 OOTB。

您应该强烈考虑仅对 GET 参数使用 key=value 参数,对其他所有参数考虑 JSON 数据。显然,您可以混合这两者(我的意思是,将文章的新内容作为带有 JSON 正文的 PUT 请求发送,但在 URL 中指定文章 ID,如 /article?id=123)。

您可能还着迷于阅读REST API: Request body as JSON or plain POST data? .

关于javascript - 参数化 Angular 请求的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29719441/

相关文章:

javascript - 如何从给定 URL 中的 JSON 数据读取 'extract' 字段

angular - res.json() 不是 HttpClient Angular 2 中的函数

Javascript 以函数风格创建对象

javascript - 我正在进行 JavaScript 验证,但当我输入姓氏时它无法正常工作,它不会显示错误并提交表单

javascript - 测试 Angular 服务时,我如何使用该服务模拟 Controller ?

c# - 当您将 DTO 模式与某些缓存或 MVVM 结合使用时,DTO 模式不是才有用吗?

javascript - Firefox 和 Chrome 为 offsetTop 提供了不同的值

javascript - 我收到此错误 "No module: ngResource"

javascript - 突出显示文档中的文本重复添加

javascript - Angular $http.jsonp() 方法只工作一次