使用$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パラメータに 'json_decode()'を使用する必要があります – KDOT
あなたのRailsサーバーが受け取ったデータが何であると思いますか? – lucasnadalutti
[$ httpParamSerializerJQLike](https://docs.angularjs.org/api/ng/service/$httpParamSerializerJQLike)を使用してみてください。 – georgeawg