【问题标题】:How can I get a FormPanel to POST JSON with ExtJS 3.1.0?如何让 FormPanel 使用 ExtJS 3.1.0 发布 JSON?
【发布时间】:2011-01-13 00:56:51
【问题描述】:

默认情况下,ExtJS 3.1.0 中的 FormPanel 在您调用其 submit() 函数时会将表单字段发布为 application/x-www-form-urlencoded

有没有办法让它改为发布 JSON?

【问题讨论】:

    标签: rest extjs form-post formpanel


    【解决方案1】:

    只需输入参数

    var formData = App.formPanel.getValues(false);
    Ext.net.DirectMethod.request({ 
         url: '/Product/Save',
         params: formData,
         success: function(jsonResult){
         }
    });
    

    App.formPanel.submit();
    

    在设置App.formPanel.url = '/Product/Save'之前

    【讨论】:

      【解决方案2】:

      您可以覆盖Ext.form.Action.Submit.run

      就像这样:

      Ext.override(Ext.form.Action.Submit, {
          run: function() {
              // Your code here
          }
      });
      

      【讨论】:

      • 尽管它不应该像这样进行猴子补丁,但我认为它是一个有用的提示,可以在定义自定义提交操作时向哪个方向移动。
      【解决方案3】:

      您可以使用getValues() 提取值,然后使用Ext.encode() 提取它们,并手动对这些数据执行Ext.Ajax.request({})

      【讨论】:

      【解决方案4】:

      您可能希望扩展 Ext.form.Action.Submit 以将参数编码为 JSON,而不是在正文中对它们进行 url 编码。

      【讨论】:

      猜你喜欢
      • 2011-02-24
      • 2011-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2011-08-13
      • 2011-06-21
      相关资源
      最近更新 更多