Отправка формы (POST): добавить параметр get

Как определить дополнительные параметры URL для отправки формы POST?

Вот как я загружаю свою форму:

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, а параметры должны быть отправлены как параметры GET.

Фактический результат: данные формы были преобразованы в объект; затем параметры были применены к этому самому объекту - и некоторые из них переопределяли поля формы с тем же именем.

Что я также пробовал: я пытался поместить параметры в объект параметров как urlParams, baseParams и extraParams, но ни один из них не работает.


person Alexander    schedule 11.02.2016    source источник
comment
Возможно, попробуйте использовать Ext.Ajax.request(). Аналогично вопросу этого.   -  person Bojan Dević    schedule 11.02.2016
comment
@BojanDević Ну, это не помогает с отправкой формы. Мне пришлось бы вручную собирать данные формы, затем вручную проверять ее и так далее...   -  person Alexander    schedule 11.02.2016
comment
но это только form.isValid() и form.getValues().   -  person Bojan Dević    schedule 11.02.2016
comment
Вы можете сериализовать параметры и добавить строку к URL-адресу, например: Ext.Object.toQueryString(params)   -  person tonymayoral    schedule 11.02.2016
comment
@tonyayoral Копаясь в коде form.submit(), я не нашел возможности вводить параметры в URL-адрес. Так что я думаю, что предложенный вами способ является единственно возможным. Пожалуйста, сделайте это ответом, чтобы я принял его.   -  person Alexander    schedule 11.02.2016


Ответы (1)


Вы можете сериализовать параметры и добавить строку к URL-адресу, например:

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