我正在尝试将JSON对象发送到Symfony操作中。
用于构建和发送数组的脚本如下所示:
var rows, arr = [];
rows = table.find('table tbody tr');
arr['x'] = new Array(rows.length);
table.find('table tbody tr').each(function (i) {
arr['x'][$(this).find('.username').text() - 1] = i;
});
console.log(arr); //PRINTS THE PROPER JSON OBJECT
$.ajax('some/correct/path', {
type: 'PUT',
data: arr,
datatype: 'json',
success: function (e) {
console.log(e);
}
});
在这里我有一个动作,现在除了捕获请求数据并将其发送回去之外什么都不做:
/**
* @View\Route("/x", name="x", options={"expose"=true})
* @View\Method("PUT")
*/
public function xAction(Request $request)
{
$all = $request->request->all();
return $this->json($all);
}
这里的问题是,当我在arr
变量上使用console.log时,它会产生正确的打印,但是当我在控制台上记录应该来自该动作的e
时结果是:
[]
以下是我已经尝试过的事情:
$.ajax
运行data : 'sometext'
(回复是:{sometext: ""}
)datatype: 'json'
JSON.stringify(arr)
{data : arr}
{data : JSON.stringify(arr)}
['x']
键)到目前为止,我已经没有想法让它正常工作。 这可能是什么问题,我怎样才能使它发挥作用?
答案 0 :(得分:1)
arr
应该是一个不是数组的对象。数组只有数字索引,当你添加属性"x"
时,它就变成了一个"数组,如" 对象
更改
arr = [];
要
arr = {};