我对Symfony来说比较新,而我认为我的问题在我的控制器中,但看不到它。我通过ajax请求向我的控制器发送有效的JSON。在尝试解码时,结果数组的长度为0,就像我的JSON没有被正确解码或者getContents()
正确返回一样?
JS / AJAX:
$('#aggregate').on('click',function(){
var sorted = [];
$('.sortable-items').each(function(){
sorted.push(JSON.stringify($(this).sortable('toArray')));
});
console.log(sorted);
$.ajax({
url: '/documentwarehouse/items/aggregate',
type: "POST",
contentType : 'application/json',
data: {"sorted": sorted},
success: function (data){
alert(data);
}, error: function(data){
alert("Sorry");
}
});
});
示例JSON存储在var sorted
中,并通过JSONlint验证:
["[\"list1_23\",\"list1_24\",\"list1_16\",\"list1_17\",\"list1_19\"]", "[\"list2_22\"]", "[\"list4_21\"]"]
因此,通过ajax发送的json数据也会被验证:
{"sorted":[" . [\"list1_23\",\"list1_24\",\"list1_16\",\"list1_17\",\"list1_19\"]", "[\"list2_22\"]", "[\"list4_21\"]"]}
控制器:
public function aggregateAction(Request $request){
$arrayOfListArrays = json_decode($request->getContent(),true);
$response = new JsonResponse([sizeof($arrayOfListArrays)]);
$response->send();
return $response;
}
在我的ajax调用的success
块中收到的响应是0
。