AngularJS $http和$resource

2022-08-30 00:31:47

我有一些要调用的 Web 服务。 或者,我应该使用哪一个?$resource$http

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

$httphttps://docs.angularjs.org/api/ng/service/$http

在我阅读了上面的两个API页面后,我迷路了。

您能用简单的英语向我解释一下有什么区别,在什么情况下我应该使用它们吗?如何构建这些调用并将结果正确读取到js对象中?


答案 1

我觉得其他答案虽然正确,但并不能完全解释问题的根源:是.这意味着所有可以通过来完成的事情都可以通过来完成,但并非所有可以通过来完成的事情都可以通过来完成。这就是内部使用的原因。RESTHTTPRESTHTTPHTTPREST$resource$http

那么,什么时候互相使用呢?

如果您所需要的只是 ,也就是说,您正在尝试访问Web服务,这将使与该Web服务进行交互变得非常容易。RESTRESTful$resource

相反,如果您尝试访问任何不是Web服务的内容,则必须使用.请记住,您也可以通过以下方式访问Web服务,它只会比使用.这是大多数人在AngularJS之外使用它的方式(相当于Angular的)。RESTful$httpRESTful$http$resourcejQuery.ajax$http


答案 2

$http用于通用 AJAX。在大多数情况下,这是您将要使用的内容。您将手动进行 , 键入调用并处理它们返回的对象。$httpGETPOSTDELETE

$resource用于 RESTful Web API 方案的包装。$http


非常笼统地说:RESTful Web服务将是一个具有一个端点的数据类型的服务,该数据类型基于HTTP方法(如,等)对该数据类型执行不同的事情。因此,使用 a ,您可以调用 a 将资源作为 JavaScript 对象获取,然后对其进行更改并将其与 a 一起发送回去,甚至使用 .GETPOSTPUTDELETE$resourceGETPOSTDELETE

...如果这有意义的话。