gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 17:09:23 24 4
gpt4 key购买 nike

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

curl -k --user damien@email.com:密码 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

应用程序.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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com