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

标签 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 时,它是应该来自结果的操作:

[]

以下是我已经尝试过的事情:

  • 使用 data : 'sometext' 运行 $.ajax(响应为:{sometext: ""})
  • 将方法更改为POST
  • 删除数据类型:'json'
  • 将数据设置为:JSON.stringify(arr)
  • 将数据设置为:{data : arr}
  • 将数据设置为:{data : JSON.stringify(arr)}
  • 将 arr 值直接设置到数组中(不使用 ['x'] 键)
  • 清除缓存
  • 安装 Linux
  • 点燃笔记本电脑
  • 回到过去杀死希特勒

到目前为止,我已经没有办法让它正常工作了。 这里可能出现什么问题,我该如何让它工作?

最佳答案

arr 应该是一个对象而不是数组。数组只有数字索引,当您添加属性“x”时,它会变成一个“类似数组”对象

改变

arr = [];

arr = {};

关于javascript - Symfony 操作无法检索正确的 AJAX JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47379292/

相关文章:

mysql - 将JSON字段转换为mysql中的键值对

php - 在 PHP 中解码字符串

php - 如何调用另一个命名空间中的方法

javascript - 对javascript apply的疑问——函数记忆化

java - 匹配所有 URL,排除 jpg、gif、png

php - 在数据库mysql php中搜索多个关键字

javascript - 在不使用任何插件的情况下在 JavaScript 中将数组分组和映射为不同的格式

javascript - 将数据 json 字符串传递给数字 Vue.js

javascript - 在 React ES6 中使用三种变量定义哪个更好?为什么?

javascript - 如何在 ngFor 之外使用 *ngFor 当前对象?