通过.submit()

时间:2015-04-22 13:25:26

标签: json extjs sencha-touch sencha-touch-2

如何通过form.submit()将用户名/密码作为Raw JSON发布。

loginForm.submit({  
    url: 'localhost/login',
    method: 'post',
    jsonData: loginForm.getValues()
...
    success: ...

即使Ext.JSON.encode(loginForm.getValues())服务器正在接收用户名= test& password = test,我需要{"用户名":"测试","密码& #34;:"测试"}

3 个答案:

答案 0 :(得分:1)

您应该尝试类似

的内容
Ext.Ajax.request({
    method: 'POST',
    url: 'submit.php',
    params  : {
        data: Ext.encode(loginForm.getValues())
    },
    success: function() {
    },
    failure: function() {
    }
});

Source for reference

答案 1 :(得分:1)

与ExtJS的情况一样,这是一个简单的答案。在loginForm的配置中:

Ext.create('Ext.form.Panel', {
   title: 'Simple Form',

  // The form will submit an AJAX request to this URL when submitted
  url: 'save-form.php',

  .... (blah blah blah)

  jsonSubmit: true    // <---- set this to TRUE
});

设置属性 jsonSubmit: true

然后当你使用loginForm.submit()时,你的对象将以JSON而不是形式参数提交。

这是指向表单文档的链接: http://docs.sencha.com/extjs/4.2.3/#!/api/Ext.form.Panel

答案 2 :(得分:0)

  

提交表单时,不会以JSON格式提交。   为了提交JSON字符串,必须使用Ext.Ajax.request。   http://www.sencha.com/forum/showthread.php?132082-jsonData-in-submit-action-of-form

我只需要改变

loginForm.submit({})

Ext.Ajax.request({})

并使用

params: Ext.JSON.encode(loginForm.getValues()),

Bad DOCS。