如何在我的angularjs页面从RESTful API访问服务?

我对angularJS很新。 我正在寻找从RESTful API访问服务,但我没有任何想法。 我怎样才能做到这一点?

选项1:$ http服务

AngularJS提供了$http服务 ,它完全符合你的需求:使用JSON(这非常适合与REST服务交谈)向Web服务发送AJAX请求并从Web服务接收数据。

举一个例子(摘自AngularJS文档,稍作修改):

 $http({ method: 'GET', url: '/foo' }). success(function (data, status, headers, config) { // ... }). error(function (data, status, headers, config) { // ... }); 

选项2:$资源服务

请注意,AngularJS中还有另一项服务, $resource服务以更高级别的方式提供对REST服务的访问(再次摘录自AngularJS文档):

 var Users = $resource('/user/:userId', { userId: '@id' }); var user = Users.get({ userId: 123 }, function () { user.abc = true; user.$save(); }); 

选项3:Restangular

此外,还有第三方解决scheme,如Restangular 。 请参阅有关如何使用它的文档 。 基本上,这是更多的声明和抽象更多的细节远离你。

$ http服务可以用于通用AJAX。 如果你有一个适当的RESTful API,你应该看看ngResource 。

您也可以看看Restangular ,这是一个第三方库,可以轻松处理REST API。

欢迎来到Angular的精彩世界!

我对angularJS很新。 我正在寻找从RESTful API访问服务,但我没有任何想法。 请帮助我做到这一点。 谢谢

如果您正在使用“GET”服务,那么编写您的第一个Angular脚本有两个(非常大的)障碍。

首先,您的服务必须实现“Access-Control-Allow-Origin”属性,否则服务将从Web浏览器中调用,但从Angular调用时会失败。

所以,你需要添加几行到你的web.config文件中:

 <configuration> ... <system.webServer> <httpErrors errorMode="Detailed"/> <validation validateIntegratedModeConfiguration="false"/> <!-- We need the following 6 lines, to let AngularJS call our REST web services --> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*"/> <add name="Access-Control-Allow-Headers" value="Content-Type"/> </customHeaders> </httpProtocol> </system.webServer> ... </configuration> 

接下来,您需要向HTML文件添加一些代码,以强制Angular调用“GET”Web服务:

 // Make sure AngularJS calls our WCF Service as a "GET", rather than as an "OPTION" var myApp = angular.module('myApp', []); myApp.config(['$httpProvider', function ($httpProvider) { $httpProvider.defaults.useXDomain = true; delete $httpProvider.defaults.headers.common['X-Requested-With']; }]); 

一旦你有了这些修复,实际调用一个RESTful API是非常简单的。

 function YourAngularController($scope, $http) { $http.get('http://www.iNorthwind.com/Service1.svc/getAllCustomers') .success(function (data) { // // Do something with the data ! // }); } 

你可以在这个网页上find一个非常清晰的步骤:

使用Angular和JSON数据

祝你好运 !

麦克风

只需在这里展开$http (快捷方式)即可: http : //docs.angularjs.org/api/ng.$http

//从页面中摘录

 $http.get('/someUrl').success(successCallback); $http.post('/someUrl', data).success(successCallback); 

//可用的快捷方式

 $http.get $http.head $http.post $http.put $http.delete $http.jsonp