javascript - $http GET 的 AngularJS API 调用错误

标签 javascript angularjs api angularjs-service angularjs-http

我正在尝试使用 Angular 创建一个简单的应用程序,该应用程序将使用我的 API。我使用虚拟机运行代码,并在计算机上访问它,因此要从我的计算机调用 API,我可以使用 cURL 或任何其他 HTTP 客户端,一切正常。一个例子:

curl -k --用户 [email protected] :密码https://api.my.domain.com/v1/traveler/get

例如,这将返回旅行者列表。我需要“信任”该证书,因为它无效。因此,首先在浏览器上调用将返回 net::ERR_INSECURE_RESPONSE,因此我只需转到 API URL 并添加异常,现在我不再遇到此问题了。然后我必须添加基本身份验证,它似乎有效。让我们看看我的代码是什么,如果您发现任何错误,请告诉我,我正在遵循使用外部 API 的本教程:http://www.toptal.com/angular-js/a-step-by-step-guide-to-your-first-angularjs-app

app.js:

angular.module('TravelerApp', [
    'TravelerApp.controllers',
    'TravelerApp.services'
]);

服务.js:

angular.module('TravelerApp.services', [])
.factory('TravelerAPIService', function($http) {
    var travelerAPI = {};

    $http.defaults.headers.common.Authorization = 'Basic ABC743HFEd...=';

    travelerAPI.getTravelers = function() {
        return $http({
            method: 'GET',
            url: 'https://api.my.domain.com/v1/traveler/get'
        });
    }

    return travelerAPI;
});

最后,controllers.js:

angular.module('TravelerApp.controllers', [])
.controller('travelersController', function($scope, TravelerAPIService) {
    $scope.travelersList = [];

    TravelerAPIService.getTravelers()
    .success(function(data) {
        console.log('SUCCESS');
        $scope.travelersList = data;
    })
    .error(function(data, status) {
        console.log('ERROR');
        $scope.data = data || "Request failed";
        $scope.status = status;
    });
});

错误状态码为0,错误数据为空字符串。

最佳答案

精度:

我对 HTTP POST 查询有相同的行为。 我确信:

  • 尚未向服务器发出请求
  • 没有发送查询的 Angular

最后我找到了答案:

因为我(可能还有你)在自签名的 httpS 服务器上发送。 Chrome 将其标记为不安全。

我通过将地址输入浏览器并手动接受证书来解决此问题。

可能相关:XMLHttpRequest to a HTTPS URL with a self-signed certificate

关于javascript - $http GET 的 AngularJS API 调用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22669259/

相关文章:

Javascript 格式化数字 API

Javascript "input"事件值未定义

javascript - 向 Angular 选项列表添加其他命令

javascript - 计算 ng-hide 和 ng-show 上表的记录值计数

api - 如何获取 Skype 机器人 api 的授权 token ?

java - 沮丧.. lastLocation.getLatitude() 将设置文本但不会启动双重。为此使用 google api

Javascript `await` "SyntaxError: Unexpted identifier"即使我在 `async` 函数中等待

javascript - CSS:当鼠标点击特定的html元素时改变背景

javascript - 从 Controller Angular ng-hide 中的服务调用函数

api - 通过彭博数据许可证验证 OCC 期权符号