Я только что проверил это с Grails и PHP. В Grails у меня нет проблем с получением массива, переданного через dojo xhrPost: я получаю массив, правильно проанализированный со всеми его значениями, как и ожидалось.
Если я отправлю:
dojo.xhrPost({
content : {
names : ['foo', 'bar']
},
url : "mygrailscontroller"
});
Я получаю параметр массива с другой стороны. Что доказывает, что проблему нужно решать не на стороне додзё, а на стороне php.
В php, если вход формы имеет переменную типа array, его параметр name должен быть установлен в квадратных скобках, например: "names []", а не "names".
Итак ... в вашем случае решение состоит не в том, чтобы сгладить массив в строку (извините), а в названии аргумента массива в скобках. Так было бы:
dojo.xhrPost({
content : {
"names[]" : ['foo', 'bar']
},
url : "myphpcontroller"
});