使用$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