Angular:将params传递给$ http.get

rea*_*lph 7 javascript http angularjs

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

var params = {
  one: value,
  two: value
}
Run Code Online (Sandbox Code Playgroud)

而我正试图将它们传递到我的函数中:

$http.get('/someUrl', params)
.success(function(data) {
   // stuff
})
.error(function(data) {
   // error stuff
});
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

Mic*_*zos 14

第二个参数$http配置对象(参见文档).在其他属性中,config对象接受一个params属性:

  • params - {Object.<string|Object>}- 将使用paramSerializer序列化并作为GET参数附加的字符串或对象的映射.

因此,您必须传递参数

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

$http.get('/someUrl', config).then(...)
Run Code Online (Sandbox Code Playgroud)

假设参数的值分别为'1'和'2',$http将向以下url发送GET请求:

/someUrl?one=1&two=2
Run Code Online (Sandbox Code Playgroud)

作为旁注,尽量避免使用successerror功能$http.从角度1.4.4开始,它们已被弃用.使用方法then成功和错误回调,或者只使用成功回调和catch.