Symfony操作无法检索正确的AJAX JSON数据

时间:2017-11-19 16:43:09

标签: javascript php json ajax symfony

我正在尝试将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: ""}
  • 将方法更改为 POST
  • 删除datatype: 'json'
  • 将数据设置为:JSON.stringify(arr)
  • 将数据设置为:{data : arr}
  • 将数据设置为:{data : JSON.stringify(arr)}
  • 将arr值直接设置到数组中(不带['x']键)
  • 清除缓存
  • 安装Linux
  • 将笔记本电脑置于火上
  • 及时回击杀死希特勒

到目前为止,我已经没有想法让它正常工作。 这可能是什么问题,我怎样才能使它发挥作用?

1 个答案:

答案 0 :(得分:1)

arr应该是一个不是数组的对象。数组只有数字索引,当你添加属性"x"时,它就变成了一个"数组,如" 对象

更改

arr = [];

arr = {};