如何从具有基本身份验证的rest api获取数据?

时间:2017-06-21 00:15:58

标签: javascript angularjs rest restful-authentication

我正试图通过HTTP get方法从这个网站获取数据。本网站有基本认证。数据采用JSON格式。 这是其余的api网站: (https://shoploapi.herokuapp.com/sellers

用户名:“bhupendra7”&密码:“ice123age456”

<div class="divTableCell" style="padding-right:0px;">
// Code goes here
angular.module('myapp', ['myapp.controller']);

angular.module('myapp.controller', ['myapp.service'])
  .controller('testController', function($scope, testService) {

    $scope.posts = {};

    function GetAllPosts() {
      var getPostsData = testService.getPosts();

      getPostsData.then(function(post) {
        $scope.posts = post.data;

      }, function() {
        alert('Error in getting post records');
      });
    }

    GetAllPosts();
  });

angular.module('myapp.service', [])
  .service('testService', function($http) {

    //get All NewsLetter
    this.getPosts = function() {
      return $http.get('https://shoploapi.herokuapp.com/sellers');
    };
  });
angular.module('myApp', ['base64'])
  .config(function($httpProvider, $base64) {
    var auth = $base64.encode("bhupendra7:ice123age456");
    $httpProvider.defaults.headers.common['Authorization'] = 'Basic ' + auth;
  });

这是我的Plunker的链接:

https://plnkr.co/edit/7pqljm?p=preview

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您的代码中存在2个问题。

<强> 1。你有一个错字

angular.module('myApp', ['base64'])中,将模块名称更改为myapp

<强> 2。您将myapp.controller注入myapp模块

的方式

将其更改为angular.module('myapp', []);您还需要重新排序代码。查看我为您创建的Plunker

即使你解决了上述两个问题,你仍然会遇到来自Heroku的CORS问题。根据您的服务器端技术(NodeJS,Rails等),您需要从服务器启用它才能与您的应用程序通信。您还可以查看JSONP with AngularJS

希望这有帮助