javascript - 根据 POST 中的 dstore/Rest 结果更新 OnDemandGrid,而不是 PUT

标签 javascript php dojo dgrid dstore

我很困惑。 我有一个可编辑的 OnDemandGrid,在它下面有一个指向我的后端的 dstore/Rest 集合(用 PHP)。

OnDemandGrid 与编辑器混合在一起...我可以编辑我的数据,但无法保存它。我在服务器端收到的是一个“POST”请求,用于在集合中插入整行...但我从未收到更新。

我不应该收到 PUT 请求吗?我在数据中使用 id...

这是客户端部分:

function (...)
{
        var EditGrid = declare([ OnDemandGrid, Keyboard, Editor ]);
        var coll = new Rest({
                                        target: 'my.php/x/',
                                        idProperty: 'id',
                                        rangeStartParam: 'range',
                                        rangeCountParam: 'limit',
                                        sortParam: 'sort'
                                });    
        var grid = new EditGrid({ columns: { 
                                     user_name:{
                                       label: 'User name',
                                      editor: 'text',
                                      editOn: 'click, dbclick',
                                    autoSave: true,
                                 }},
                               collection: coll }, 'grid' );
        grid.startup();
}

我正确地收到了 GET 查询来填充表...然后,在编辑一行并点击“返回”后,我收到一个 POST!

服务器端在这里显示有点复杂...基本上,在 GET 上我执行 SQL 查询并对结果进行 json 化,而在 POST 上我只返回:

http_response_code(201);
header("location: ".$_SERVER['PATH_INFO'].$id);

其中 $id 与我从请求中收到的 ID 相同...

发布后,我没有收到任何其他信息。在 POST 数据中,我只收到旧的、未修改的行的副本...我从未收到"new"编辑的数据。

在我看来,我应该在某个时候收到 PUT 请求...我尝试了浏览器调试器、服务器日志,但什么地方都没有。

有人可以帮我吗?

最佳答案

我终于修好了。

这非常复杂,而且很少有关于所有这些困惑的记录。我必须深入研究一下浏览器调试器和 dgrid/Rest 源代码。

所以问题全部出在我的 REST 后端。事实证明,dgrid 在请求修改项目的 PUT/POST 之前执行了 GET,并且通过询问特定的“id”仅对一条记录执行了 GET。这是有道理的。

嗯,我的后端将以 JSON 格式返回一个包含一个元素的数组。这就是错误! dgrid 无法正确解析它,并导致 POST 而不是 PUT。

一旦我修复了 GET 后端以返回单个 JSON 项目而不是内部包含一个 JSON 项目的数组,dgrid 就开始发送正确的 PUT。

关于javascript - 根据 POST 中的 dstore/Rest 结果更新 OnDemandGrid,而不是 PUT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47438364/

相关文章:

Javascript (0 && 1)

javascript - JavaScript 中的回调问题

javascript - 在 NodeJS 中使用 .ENV 值,Procfile 定义中出现必需的键错误

javascript - Angular/Laravel CORS 问题 : The Same Origin Policy disallows reading the remote resource

php - JQuery 没有执行 - 但它正在加载?

php - Codeigniter:基于选择的查询

php - 如何在 .htaccess 中创建别名以更改本地 URL

javascript - jQuery 中有类似 Dojo GFX 的东西吗?

javascript - esri QueryTask 不返回结果

javascript - 使用 id 更改类参数