为什么AngularJS将HTTP PUT数据放在URL中而不是正文中?

尼克兰

我有两项服务:

var PlanResource = $resource('/api/v1/plan/:planId', {}, {
  'update':  { method:'PUT', params:{ planId : '@_id.$oid' }, isArray : false },
});

var UserResource = $resource('/api/v1/user', {}, {
    'update': {method:'PUT', params:{ }, isArray : false},
});

当我在第一个调用update时,它将传递的数据放在正文中,而第二个则将其传递到URL中,例如:

PUT /api/v1/user?profiles=%7B%22skeleton%22:false,%data%22:234

为什么会发生这种情况,我又该如何第二次将数据放入体内?

编辑:

用法是:

ctrl.user.$update({'profiles' : appCtrl.user.profiles}).then(function() {

ctrl.plan.$update({name: planName});
Tong Shen

您可以显示使用代码吗?

通常,您不应将要放入正文中的任何值放入“参数”中。他们应该属于一个单独的论点。在$ resource文档中,有

non-GET "class" actions: Resource.action([parameters], postData, [success], [error])

所以你应该尝试:

UserResource.update({
    // URL params here.
}, profiles   // Body here.
, ..., ...);

编辑:

更新后,您正在使用实例方法而不是类方法。在文档中,它说:

non-GET instance actions: instance.$action([parameters], [success], [error])

在实例方法调用中,您只能传递URL参数。请求的主体将自动是对象本身(在您的情况下,ctrl.user将是主体)。

如果您确实想将请求主体修改为对象本身以外的其他东西,请改用类方法。

$ resource的文档在这里:

https://docs.angularjs.org/api/ngResource/service/ $ resource

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么AngularJS将HTTP PUT数据放在URL中而不是正文中?

来自分类Dev

我可以将杂项“ Inline”放在正文中,而不是放在规范中吗?

来自分类Dev

为什么$ http.put在AngularJS中不起作用?

来自分类Dev

为什么$ http.put在AngularJS中不起作用?

来自分类Dev

为什么HTTP PUT请求必须在URL(以及请求正文)中传递实体密钥?

来自分类Dev

无法将REST服务中OAuth2 POST请求的参数放在正文中

来自分类Dev

为什么angularJs中的$ http可以被视为对象和函数?

来自分类Dev

为什么我无法在请求方法中从正文中获取数据

来自分类Dev

AngularJS $ http.post如何将json数据设置到请求正文中

来自分类Dev

AngularJS $ http.post如何将json数据设置到请求正文中

来自分类Dev

AngularJS $ http POST withCredentials失败,请求正文中的数据

来自分类Dev

AngularJS为什么$ http.get中没有显示数据?

来自分类Dev

为什么AngularJS在$ http发布请求中的数据对象的末尾添加冒号

来自分类Dev

为什么在POST正文中需要数据时为什么需要FromBody属性

来自分类Dev

为什么AngularJS 2 HTTP Post只接受字符串数据?

来自分类Dev

为什么AngularJS 2 HTTP Post只接受字符串数据?

来自分类Dev

为什么成功或错误回调函数对于angularjs中的$ http.post无法正确执行

来自分类Dev

为什么将HTTP响应分为两部分:标头和正文?

来自分类Dev

为什么将WakeLock机制放在BroadcastReceiver中而不是在Service中?

来自分类Dev

为什么将方法放在类的原型上而不是在构造函数中声明呢?

来自分类Dev

为什么将连接字符串放在 Constructor 中而不是将其省略?

来自分类Dev

为什么AngularJS视图无法将数据发送到此可重用服务?

来自分类Dev

应该将angularjs $ resource包装在工厂中吗?为什么不服务?

来自分类Dev

为什么Git Shell可以将SSH与HTTP远程原始URL一起使用?

来自分类Dev

Android HTTPUrlConnection:如何在http正文中设置发布数据?

来自分类Dev

Robospice:在HTTP请求正文中发送JSON数据

来自分类Dev

Robospice:在HTTP请求正文中发送JSON数据

来自分类Dev

Android HTTPUrlConnection:如何在http正文中设置发布数据?

来自分类Dev

使用Alamofire在HTTP正文中发送数据

Related 相关文章

  1. 1

    为什么AngularJS将HTTP PUT数据放在URL中而不是正文中?

  2. 2

    我可以将杂项“ Inline”放在正文中,而不是放在规范中吗?

  3. 3

    为什么$ http.put在AngularJS中不起作用?

  4. 4

    为什么$ http.put在AngularJS中不起作用?

  5. 5

    为什么HTTP PUT请求必须在URL(以及请求正文)中传递实体密钥?

  6. 6

    无法将REST服务中OAuth2 POST请求的参数放在正文中

  7. 7

    为什么angularJs中的$ http可以被视为对象和函数?

  8. 8

    为什么我无法在请求方法中从正文中获取数据

  9. 9

    AngularJS $ http.post如何将json数据设置到请求正文中

  10. 10

    AngularJS $ http.post如何将json数据设置到请求正文中

  11. 11

    AngularJS $ http POST withCredentials失败,请求正文中的数据

  12. 12

    AngularJS为什么$ http.get中没有显示数据?

  13. 13

    为什么AngularJS在$ http发布请求中的数据对象的末尾添加冒号

  14. 14

    为什么在POST正文中需要数据时为什么需要FromBody属性

  15. 15

    为什么AngularJS 2 HTTP Post只接受字符串数据?

  16. 16

    为什么AngularJS 2 HTTP Post只接受字符串数据?

  17. 17

    为什么成功或错误回调函数对于angularjs中的$ http.post无法正确执行

  18. 18

    为什么将HTTP响应分为两部分:标头和正文?

  19. 19

    为什么将WakeLock机制放在BroadcastReceiver中而不是在Service中?

  20. 20

    为什么将方法放在类的原型上而不是在构造函数中声明呢?

  21. 21

    为什么将连接字符串放在 Constructor 中而不是将其省略?

  22. 22

    为什么AngularJS视图无法将数据发送到此可重用服务?

  23. 23

    应该将angularjs $ resource包装在工厂中吗?为什么不服务?

  24. 24

    为什么Git Shell可以将SSH与HTTP远程原始URL一起使用?

  25. 25

    Android HTTPUrlConnection:如何在http正文中设置发布数据?

  26. 26

    Robospice:在HTTP请求正文中发送JSON数据

  27. 27

    Robospice:在HTTP请求正文中发送JSON数据

  28. 28

    Android HTTPUrlConnection:如何在http正文中设置发布数据?

  29. 29

    使用Alamofire在HTTP正文中发送数据

热门标签

归档