【问题标题】:How to send Angular $http GET data to GitHUB API [duplicate]如何将 Angular $http GET 数据发送到 Github API [重复]
【发布时间】:2018-09-17 22:09:24
【问题描述】:

我成功地从 GitHub 撤回了给定 repo 上的所有问题,但是,现在我正在尝试利用下面链接中讨论的 'since' 参数来限制结果并且遇到了非常困难的情况。根据 Mozilla 的说法,参数甚至没有被发送。

GitHub 文档:https://developer.github.com/v3/issues/

function getIssues(callback) {
    var owner = $('#owner').val();
    var repo = $('#repo').val();
    $scope.owner = owner;
    $scope.repo = repo;

    var urlBase = 'https://api.github.com/';
    var urlUser   = urlBase + 'users/' + owner;
    var urlUserRepos  = urlUser + '/repos';

    var urlRepoIssues = urlBase + 'repos/' + owner + '/' + repo + '/issues';

    var ownerInput = angular.element(document.querySelector('#owner'));
    var repoInput = angular.element(document.querySelector('#repo'));
    var sinceInput = angular.element(document.querySelector('#since'));
    var errorFeedback = angular.element(document.querySelector('#errorFeedback'));
    var sinceDate = sinceInput.val();
    var tempDate = '2018-09-17T23:27:31Z';

    $http({
        method: 'GET',
        url: urlRepoIssues,
        headers: {'Content-Type': 'application/json'},
        data: { 'since': tempDate }
    }).then(
        //Success
        function(response) {
            ownerInput.addClass('is-valid').removeClass('is-invalid');
            repoInput.addClass('is-valid').removeClass('is-invalid');
            errorFeedback.html('');

            var data = response.data;
            callback(data);
        },
        //Fail
        function(response) {
            ownerInput.addClass('is-invalid').removeClass('is-valid');
            repoInput.addClass('is-invalid').removeClass('is-valid');
            errorFeedback.html('The Owner or Repo is incorrect.');

            var data = [];
            callback(data);
        }
    );
};

【问题讨论】:

标签: angularjs api github parameters get


【解决方案1】:

data 不适用于 GET,只能用于 PUT,但 params 可用于 GET。因此,以下工作:

$http({
  method: 'GET',
  url: urlRepoIssues,
  params: { 'since': sinceDate }
}) 
.
.
.

另外注意日期的格式:

var sinceDate = new Date(sinceInput.val()).toISOString();

【讨论】:

  • data 只用PUT 操作发送是错误的。 POST 和 DELETE 操作呢?
猜你喜欢
  • 2018-11-28
  • 2017-08-08
  • 2017-10-30
  • 2019-01-27
  • 1970-01-01
  • 1970-01-01
  • 2016-03-19
  • 1970-01-01
  • 2012-10-05
相关资源
最近更新 更多