gpt4 book ai didi

javascript - 使用 AngularJS $http.get 方法传递数据

转载 作者:行者123 更新时间:2023-11-28 13:23:03 25 4
gpt4 key购买 nike

我正在使用 MEAN 堆栈构建一个应用程序,该堆栈将利用从外部 API 检索的数据。作为隐藏 API key 的一种措施,我想从服务器发出 API 请求,但是在将搜索词从 Angular 前端传递到服务器时遇到问题。

下面的代码是 Angular Controller 的一部分,它应该将带有搜索词的请求传递到服务器:

myApp.controller('mainController', ['$scope','$http', '$location', function($scope, $http, $location){
$scope.submit = function(){
$location.path('/results');
$http({method: 'GET', url: '/makeSearch', data: {term: $scope.term} });
}
}]);

然后以下服务器代码将使用 body-parser 中间件解析请求:

app.get('/makeSearch', function(req, res) {
console.log("I received a command!");
console.log(req.body); });

但是,一旦我尝试从前端传递/提交搜索词,我在服务器控制台上只得到一个空对象。关于我做错了什么有什么建议吗?任何帮助,将不胜感激。

最佳答案

我明白了! @Rikky 提出了一个很好的观点,即 http get 请求的正文 (req.body) 始终为空。因此,通过将 req 记录到控制台,我弄清楚了如何使用 GET 方法发送搜索词

在 AngularJS Controller 中的请求中使用 params 而不是 data,如下面的代码所示:

revApp.controller('mainController', ['$scope','$http', '$location', function($scope, $http, $location){

$scope.submit = function(){
console.log($scope.term);
$location.path('/results');
$http({method: 'GET',
url: '/makeSearch',
params: {term: $scope.term}
});
} }]);

在服务器上,记录 req.query 而不是 req.body,如下面的代码所示:

app.get('/makeSearch', function(req, res) {
console.log("I received a command!");
console.log(req.query); });

感谢各位的帮助!

关于javascript - 使用 AngularJS $http.get 方法传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31586877/

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