Javascript 角度:将参数传递给$http.get

Javascript 角度:将参数传递给$http.get,javascript,angularjs,http,Javascript,Angularjs,Http,我正在尝试将params对象传递给$http.get()服务。我的爱人看起来像这样: var params = { one: value, two: value } $http.get('/someUrl', {params: params}) .success(function(data) { // stuff }) .error(function(data) { // error stuff }); 我试着将它们传递到我的函数中,如下所示: $http.get('/s

我正在尝试将params对象传递给
$http.get()
服务。我的爱人看起来像这样:

var params = {
  one: value,
  two: value
}
$http.get('/someUrl', {params: params})
.success(function(data) {
   // stuff
})
.error(function(data) {
   // error stuff
});
我试着将它们传递到我的函数中,如下所示:

$http.get('/someUrl', params)
.success(function(data) {
   // stuff
})
.error(function(data) {
   // error stuff
});
这是执行此操作的正确方法吗?

$http建议$http.get方法的第二个参数是一个对象,您可以将其与“param”对象一起传递

试着这样做:

var params = {
  one: value,
  two: value
}
$http.get('/someUrl', {params: params})
.success(function(data) {
   // stuff
})
.error(function(data) {
   // error stuff
});
服务/工厂 对于实际调用,请使用一个工厂或服务,您可以将其注入到所需的控制器中。这是一个工厂传递参数的示例

.factory('Chats', function ($http, $rootScope, $stateParams) {
  return {
      all: function () {
          return $http.get('http://ip_address_or_url:3000/chats', { params: { user_id: $rootScope.session } })
      }
  };
});
控制器 在控制器中,您使用的服务如下

.controller('ChatsCtrl', function ($scope, Chats) {
    Chats.all().success(function (response) {
        $scope.chats = response;
    })
})

$http
的第二个参数是一个配置对象()。在其他属性中,config对象接受
params
属性:

  • params–
    {Object.}
    –将使用paramSerializer序列化并作为GET参数追加的字符串或对象的映射
因此,您必须这样传递参数

var config = {
    params: {
        one: value,
        two: value
    }
}

$http.get('/someUrl', config).then(...)
假设参数的值分别为“1”和“2”,
$http
将向以下url发送GET请求:

/someUrl?one=1&two=2

请注意,尽量避免在
$http
上使用
success
error
函数。自1.4.4起,它们已被弃用。使用方法
then
进行成功和错误回调,或者只进行成功回调和
catch

我最近遇到了类似的问题,我不得不向请求添加一些额外的细节(我使用了带有一些标题的已接受答案):


它们是路径/查询参数吗?这太棒了!谢谢你。