Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何限制Angularjs$resource发出的请求?_Javascript_Angularjs_Angularjs Resource - Fatal编程技术网

Javascript 如何限制Angularjs$resource发出的请求?

Javascript 如何限制Angularjs$resource发出的请求?,javascript,angularjs,angularjs-resource,Javascript,Angularjs,Angularjs Resource,假设我想创建一个资源来处理与REST服务器的通信,更具体地说,是与一张卡片表的通信。我对它的定义大致如下: $resource(... + '/cards/:id', {id:'@id'}, { read: { ... }, save: { ... }, create: { ... }, delete: { method: 'DELETE', headers: rHeaders, params: {id: '@id'}, } }) 现在,如果我想删除

假设我想创建一个资源来处理与REST服务器的通信,更具体地说,是与一张卡片表的通信。我对它的定义大致如下:

$resource(... + '/cards/:id', {id:'@id'}, {
  read: { ... },
  save: { ... },
  create: { ... },
  delete: {
    method: 'DELETE',
    headers: rHeaders,
    params: {id: '@id'},
  }
})

现在,如果我想删除一张id为12的卡,我所要做的就是调用
$delete({id:12})
,它发出的请求大致如下:delete…/cards/12。这正是我想要的,很好,但是仍然有很大的机会在没有参数的情况下意外调用
$delete()
,这将导致这样的请求:delete…/cards,这将删除整个表,这是我不想要的。在资源的定义范围内,有没有办法使这个资源更简单一点?谢谢。

您应该避免从API后端而不是从AngularJS删除通配符。后端代码是什么?如果它没有收到任何ID,它将抛出一个错误。没有真正回答您的问题,但在我看来,
DELETE…/cards
没有ID的卡不应该在服务器上公开。即使您将其从
$resource
中删除,任何人都可以手动发出请求。我和后端处理人员谈过,他希望它保持这样。任何人仍然可以手工提出请求,但这绝非偶然。我只是不想一周两次恢复测试数据库,尤其是因为周围有些新人可能不熟悉资源的工作方式。你应该避免从API后端而不是从AngularJS中删除通配符。后端代码是什么?如果它没有收到任何ID,它将抛出一个错误。没有真正回答您的问题,但在我看来,
DELETE…/cards
没有ID的卡不应该在服务器上公开。即使您将其从
$resource
中删除,任何人都可以手动发出请求。我和后端处理人员谈过,他希望它保持这样。任何人仍然可以手工提出请求,但这绝非偶然。我只是不想一周两次恢复测试数据库,特别是因为周围有些新人可能不熟悉资源的工作方式。