gpt4 book ai didi

angularjs - 如何在 AngularJS 上验证对 OrientDB 函数的 HTTP 请求?

转载 作者:行者123 更新时间:2023-12-02 23:32:07 25 4
gpt4 key购买 nike

我有以下 OrientDB 函数:

http://localhost:2480/function/Application/getPassFailCount/9:600

它返回以下 JSON 结果:

{"result":[{"@type":"d","@version":0,"pass":16.0,"fail":2.0,"@fieldTypes":"pass=d,fail=d"}]}

我需要做的是获取“pass”“fail”的值以在我的网页中使用。

到目前为止,我已经使用 AngularJS 完成了此操作:

$http.get('http://localhost:2480/function/Application/getPassFailCount/9:600').
success(function(data) {
$scope.data = data.result;



// $scope.passCount = ;
// $scope.failCount = ;

});

目前它给出错误“401 Unauthorized”。如何验证请求?

如果可能的话,有人可以提供一些关于如何从返回的 JSON 结果中获取 passCountfailCount 的提示吗?

最佳答案

OrientDB HTTP API documentation声明您必须使用 HTTP 基本身份验证来发出命令。这意味着您必须在请求中包含 Authorization header 。

有几种方法可以实现这一点,这里是一种更简单的方法。使用 $http.get 的配置对象参数设置请求的 header :

function base64(str) {
return btoa(unescape(encodeURIComponent(str)));
}

$http.get('http://...', {
headers: { 'Authorization': 'Basic ' + base64(user + ':' + password) }
}).success(...);

您绝对应该将所有数据库逻辑移至 Angular 服务,这样您就可以将此代码保留在一个位置,而不是污染您的 Controller 。

为了使其更清晰,您可以查看 $http interceptors并编写一个请求拦截器,将 header 添加到每个 HTTP 调用中。

<小时/>

关于 JSON 问题:您可以看到结果对象包含一个具有单个元素的数组。使用索引来获取实际记录。

var result = data.result[0];
$scope.passCount = result.pass;
$scope.failCount = result.fail;

如果您按照我提到的方式编写了服务,则可以从 Controller 中隐藏此实现细节。

function getCount() {
return $http.get(...).then(function (data) {
var result = data.result[0];

// the caller will only see this simpler object
return { pass: result.pass, fail: result.fail };
});
}

关于angularjs - 如何在 AngularJS 上验证对 OrientDB 函数的 HTTP 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30117149/

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