使用$httpParamSerializerJQLike:
var myUrl = '/clients.json'
var myParams = {c: {year: ["2015", "2016"]}};
$http({
url: myUrl,
method: 'GET',
params: myParams,
paramSerializer: '$httpParamSerializerJQLike'
});
的$httpParamSerializerJQLike
服务是遵循jQuery的param()
方法逻辑替代$ HTTP PARAMS串行器。
JSON: {"c":{"year":[2014,2015]}}
Encode: c%5Byear%5D%5B%5D=2014&c%5Byear%5D%5B%5D=2015
Decode: c[year][]=2014&c[year][]=2015
的DEMO on JSFiddle
,当我运行一些原因:
var myParams = {c: {year: ["","2015","2016"]}};
var myParamsString = JSON.stringify(myParams);
var myParamsSerial = $httpParamSerializerJQLike(myParamsSerial);
的myParamsSerial
回来为空白。有任何想法吗?
不要字符串化对象:
var myParams = {c: {year: ["","2015","2016"]}};
//DONT stringify
//var myParamsString = JSON.stringify(myParams);
//var myParamsSerial = $httpParamSerializerJQLike(myParamsSerial);
//USE directly
var myParamsSerial = $httpParamSerializerJQLike(myParams);
的PARAMS串行序列化JavaScript对象,而不是一个JSON字符串。
你需要将它作为json数据类型llke'?year = {“time_one”:1479147348,“time_two”:1479147348}发送,然后在GET参数 – KDOT
上使用'json_decode()'你能否澄清关于你期望Rails服务器收到的数据是什么? – lucasnadalutti
尝试使用[$ httpParamSerializerJQLike](https://docs.angularjs.org/api/ng/service/$httpParamSerializerJQLike)。 – georgeawg