我是使用Dojo框架的新手。我已经实现了dgrid来收集数据,这非常适合在数据输入期间从客户端存储,查询,更新和删除数据。但是,一旦dojo.store.memory数据类型具有数据,我想使用ajax请求将dojo对象发布到服务器。

我想将数据以json格式发布到服务器,但是我无法将对象(myStore)转换为json字符串。到目前为止,我一直在尝试以下内容:

JavaScript功能

function SendForm(){
  var jsonIdObj = JSON.stringify(myStore);

dojo.xhrPost({
   url:'processData',
   form:dojo.byId('myForm'),
   postData:jsonIdObj,
   success: function(){
        console.log('success');
    },
   error: function(){
    console.log('error occured');
    }
   });
}


数据存储

 var myStore = new dojo.store.Observable(new Memory({data: data, idProperty:"typeId"}));


数据

var data = [{ id:"1",age:"33",idtype:"1" ,first_name: "Edward", surname: "Davis" },
             { id:"2",age:"41",idtype:"2" ,first_name: "Lewis", surname: "Holl"},
             { id:"3",age:"59",idtype:"3" ,first_name: "Fred", surname: "James"}];

最佳答案

首先,您要对store.data而不是store本身进行字符串化。 dojo/store/Memory在存储的data属性中维护数据本身。

其次,您可能不想在XHR调用中同时指定formpostData-在这种情况下,您可能只想要postData。将form指定为dojo.xhrPost时,它将转换为对象,无论如何都将传递给postData

第三,如果您使用的是Dojo 1.8或更高版本,则应考虑使用新的dojo/request API

07-24 09:51
查看更多