如何在AngularJS中对一些数据进行$http GET?

enyaitl3  于 2023-05-05  发布在  Angular
关注(0)|答案(5)|浏览(112)

我想向我的后端发出Get请求,但我想在发送响应对象之前验证一些用户凭据。
下面是我的代码:

$scope.getEverything = function (){
    $http.get('http://localhost:1234/things').success(function(data){
        $scope.things = data;
    });
};

我尝试了使用以下语法的相同代码:

$http.method('path).then
$http.method(config)

我只是不知道如何传递一些数据。尝试使用params:data作为配置对象,并打印输出:
404(Not Found)页面没有找到
在控制台上。
AngularJS文档没有提到使用GET请求发送数据。我也试过Stack的一些答案,但大多数都过时了,根本不起作用。
我可以用GET请求发送数据吗?或者这只是我的应用程序的一个设计错误?

roejwanj

roejwanj1#

您很可能需要使用POST方法而不是GET方法。
但是要使用GET方法:
AngularJS passing data to $http.get request
HTTP GET请求不能包含要发送到服务器的数据。但是,您可以向请求中添加查询字符串。
angular.http为它的参数提供了一个选项。

$http({
     url: user.details_path, 
     method: "GET",
     params: {user_id: user.id}  
});

使用AngularJS来POST:

$http.post('/someUrl', {msg:'hello word!'}).
  then(function(response) {
    // this callback will be called asynchronously
    // when the response is available
  }, function(response) {
    // called asynchronously if an error occurs
    // or server returns response with an error status.
  });
mhd8tkvw

mhd8tkvw2#

对于$http.get请求,请使用config对象的params属性

$http.get(url, {params:{ foo:'bar'}}).then(func....

参见$http docs用法部分的参数

wr98u20j

wr98u20j3#

如果你想在使用GET方法时传递一些数据,你可以在$http服务的get方法上传递一个params选项。这将是URLencoded参数。

$http.get(url, {
  params: {
    query: 'hello world'
  }
}

$http({
   url: url,
   method:'GET',
   params: {
     query:'Hello World'
   }
})

但是,http标准定义了POST方法来向服务器发送数据。GET只是从中获取数据。在Angular中,POST方法看起来像:

$http({
  url: url,
  method:'POST',
  data: {
    query: 'Hello World'
  }
})

检查official docs的GET和POST

afdcj2ne

afdcj2ne4#

试试看

var req = {
 method: 'GET',
 url: 'http://localhost:1234/things',
 data: { test: 'test' }
}

$http(req).then(function(){...}, function(){...});
7uhlpewt

7uhlpewt5#

正如@charlietfl提到的,根据文档,你可以这样做来实现下载加载/总进度:

$http.get(url,  {
     eventHandlers: {
         'progress': function(evt) {
             $window.console.log(evt.loaded + '/' + evt.total);
         }
     }
  }).then(function(response) { ...

相关问题