如何访问的RESTful API的服务,我angularjs页?(How to access the

2019-09-02 01:54发布

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

Answer 1:

选项1:$ http服务

AngularJS提供了$http服务 ,做你想要什么:发送Ajax请求的Web服务,并从中接收数据,使用JSON(这是完全的交谈REST服务)。

举一个例子(从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

此外,也有第三方的解决方案,如Restangular 。 看到它的文档了解如何使用它。 基本上,它的方式更具声明并提取更多的细节远离你。



Answer 2:

在$ HTTP服务可以用于一般用途的AJAX。 如果你有一个正确的RESTful API,你应该看一看ngResource 。

你也可以看看Restangular ,这是一个第三方库来处理的REST API容易。



Answer 3:

欢迎来到角的精彩世界!

我是很新的angularJS。 我正在寻找从REST风格的API访问服务,但我没有得到任何想法。 请大家帮我做到这一点。 谢谢

有两个(非常大的)障碍写你的第角脚本,如果您目前使用的“GET”服务。

首先,你的服务必须实行“访问控制允许来源”属性,否则服务将工作一种享受,比如说,从Web浏览器调用时,而是从角调用时惨遭失败。

所以,你需要几行添加到您的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文件,迫使角叫“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 !
        //  
    });
}

你可以找到该网页上的这些步骤的真正明确演练:

采用了棱角分明,与JSON数据

祝好运 !

麦克风



Answer 4:

只是为了在扩大$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


Answer 5:

比如你的JSON看起来是这样的:{“ID”:1,“内容”:“你好,世界”}

您可以直通像这样angularjs访问此:

angular.module('app', [])
    .controller('myApp', function($scope, $http) {
        $http.get('http://yourapp/api').
            then(function(response) {
                $scope.datafromapi = response.data;
            });
    });

然后在你的HTML你会做这样的:

<!doctype html>
<html ng-app="myApp">
    <head>
        <title>Hello AngularJS</title>
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
        <script src="hello.js"></script>
    </head>

    <body>
        <div ng-controller="myApp">
            <p>The ID is {{datafromapi.id}}</p>
            <p>The content is {{datafromapi.content}}</p>
        </div>
    </body>
</html>

这就要求在CDN的情况下,你不想下载它们angularjs。

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
<script src="hello.js"></script>

希望这可以帮助。



文章来源: How to access the services from RESTful API in my angularjs page?