【问题标题】:Form submission (POST): Add get parameter表单提交(POST):添加get参数
【发布时间】:2016-05-22 08:10:40
【问题描述】:

如何为我的 POST 表单提交定义额外的 url 参数?

这是我加载表单的方式:

form.load({
    url:APIURI+'GetComment',
    method:'GET',
    params:params,
});

结果:params对象被序列化为GET参数;表单内容以 JSON 格式返回。

这就是我提交表单的方式:

form.submit({
    url:APIURI+'SetComment',
    method:'POST',
    params:params,
    callback:function() {
        me.close();
    }
});

预期结果:表单数据应以 JSON POSTDATA 形式发送,params 应以 GET 参数形式发送。

实际结果:表单数据变成了对象;然后将参数应用于该对象 - 其中一些覆盖了同名的表单字段。

我也尝试过:我尝试将参数作为urlParamsbaseParamsextraParams 放入选项对象中,但这些都不起作用。

【问题讨论】:

  • 也许可以尝试使用Ext.Ajax.request()。类似于this 问题。
  • @BojanDević 好吧,这对提交表单没有帮助。然后我必须手动收集表单数据表单提交,手动验证它等等......
  • 但这只是form.isValid()form.getValues()
  • 您可以序列化参数并将字符串附加到 url,例如:Ext.Object.toQueryString(params)
  • @tonymayoral 挖掘form.submit() 代码,我发现无法将参数注入 url。所以我想你提出的方法是唯一可行的方法。请让它成为我接受的答案。

标签: extjs extjs6


【解决方案1】:

您可以序列化参数并将字符串附加到url,例如:

form.submit({
  url: APIURI + 'SetComment?' + Ext.Object.toQueryString(params),
  method: 'POST',
  callback: function() {
    me.close();
  }
});

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多