Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS API调用错误,带有$http GET_Javascript_Angularjs_Api_Angularjs Service_Angularjs Http - Fatal编程技术网

Javascript AngularJS API调用错误,带有$http GET

Javascript AngularJS API调用错误,带有$http GET,javascript,angularjs,api,angularjs-service,angularjs-http,Javascript,Angularjs,Api,Angularjs Service,Angularjs Http,我正在尝试使用Angular创建一个简单的应用程序,它将使用我的API。我使用一个VM来运行代码,并在我的计算机上访问它,所以要从我的计算机调用API,我可以使用cURL或任何其他HTTP客户端,一切都可以正常工作。例如: curl-k——用户damien@email.com:密码 例如,这将返回一个旅行者列表。我需要“信任”证书,因为它无效。因此,在浏览器上,首先调用将返回net::ERR\u unsecure\u RESPONSE,因此我只需转到API URL并添加异常,现在我不再有这个问题

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

curl-k——用户damien@email.com:密码

例如,这将返回一个旅行者列表。我需要“信任”证书,因为它无效。因此,在浏览器上,首先调用将返回
net::ERR\u unsecure\u RESPONSE
,因此我只需转到API URL并添加异常,现在我不再有这个问题了。然后我必须添加基本的身份验证,它似乎可以工作。让我们看看我的代码是什么,如果您发现任何错误,请告诉我,我将遵循使用外部API的本教程:

app.js:

angular.module('TravelerApp', [
    'TravelerApp.controllers',
    'TravelerApp.services'
]);
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查询有相同的行为。 我相信:

  • 尚未在服务器上发出任何请求
  • 不发送查询是有角度的
最后我找到了答案:

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

我通过将地址放在浏览器上并手动接受证书来解决此问题


可能相关:

我建议使用可信的CA签名SSL证书,而不是自签名证书,这将解决您的问题,因为大多数浏览器不接受自签名证书,如Google Chrome、Firefox等。

当我关闭HTTP服务器并发出请求时,我会得到类似的结果。可能相关: