2

我正在玩由existdisolve 编写的ExtJs4 cartracker 应用程序。我能够将他的查询从休息请求更改为 ajax 请求。我还修改了 api 调用以使用 ajax 来发出 ajax 更新请求。

我没有将表单或 url 数据传递给我的 cfc。相反,在萤火虫中,我看到 JSON 通过了。如果它没有在表单或 url 中传递,我很困惑,这是如何传递的,我如何获取数据?我已经尝试反序列化表单和 url 并在反序列化后转储它们,我被告知它不是 json。

我在哪里可以找到json?我不允许张贴图片。但它在 xhr 窗口中看起来像这样:

JSON
   Active     true
   ColorID    null
   Shortname  red
   Longname   Blood Red

那么,如果它正在通过,为什么我不能得到它?

编辑: @existdissolve - 我用 ajax.js 替换了 rest.js,看起来像这样:

     /**
    * Abstract REST proxy 
    */
    Ext.define('CarTracker6.proxy.Ajax', {
        extend: 'Ext.data.proxy.Ajax',
    alias: 'proxy.baseajax',
    /*format: 'json',*/
    limitParam: 'max',
    startParam: 'offset',
    sortParam: 'sortorder',
    writer : { 
    type : 'ajax',
    encode : false,
    writeAllFields : true,
    root : 'data',
    allowSingle : true,
    batch : false,
    method: 'post',
params: { record: 'record' },
    writeRecords : function(request, data) {
    request.jsonData = data;
return request;
    }
 },

reader: {
    type: 'json',
    root: 'data',
    totalProperty: 'count'
},
    api: {
        read: 'api/option/colors.cfc?method=getcolors',
        create: 'api/option/colors.cfc?method=addcolors',
        update: 'api/option/colors.cfc?method=updatecolors',
        destroy: 'api/option/colors.cfc?method=deletecolors'
    }
});

我的阅读工作完美,我可以为颜色、状态等调用正确的 cfcs 并检索必要的数据。我希望将参数传递给 CFC,但这不起作用。

4

1 回答 1

0

请参阅http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.writer.Json-cfg-encode

如果您的 writer 的 encode 属性设置为 false,则所有数据都作为原始帖子正文发送。相反,您可以使用

encode: true, 
root: 'data', // must be set if encode is true
于 2013-11-07T20:43:13.953 回答