Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2018, 14:26
Интересующийся
Отправить личное сообщение для Postgeograph Посмотреть профиль Найти все сообщения от Postgeograph
 
Регистрация: 08.11.2018
Сообщений: 14

getForm() и POST запрос на сервер. Трабл.
Добрый день!

Есть приложение с несколькими формами. Закономерно желание данные заполненных форм отправлять на сервер по нажатию некой кнопки н-р "сохранить".
Пробежавшись по интернетам нашел несколько вариантов решения, далее забуксовал на этих двух:

{text: 'save',
          ui: 'confirm',
        
          handler: function() {
              Ext.Ajax.request({
              url:'/api/renter/',
              method:'POST',
              params: {

                "document": "",
                "document_num": "",
                "legal_type": "",
                "_represent": "",
                "position_represent": "",
                "certificate": ""

              },
              jsonData:{
                   ReplaceAllRefs: true
              }
          })
      }


результат: - в дебагере выдается ошибка 403..

{
              text: 'save',
              ui: 'confirm',
              scope: this,
              handler: function() {
                  var form = this.up('foresto-rentertype').getForm();
                  if (form.isValid()) {  
                      form.submit({
                          success: function(form, action) {
                             Ext.Msg.alert('Success', action.result.msg);
                          },
                          failure: function(form, action) {
                              Ext.Msg.alert('Failed', action.result.msg);
                          }
                      });
                  } else {
                      Ext.Msg.alert('Error', 'Please correct form errors.')
                  }
            
          }
            	  
      	}


результат: дебагер сообщает о том что this.up is not a function


вопросы:
1) забираются ли значения формы в первом варианте вообще? Делал по нескольким экзамплам, не вижу блока кода который забирал бы значения перед POST запросом.
2)может ли быть связана ошибка 403 с клиентской частью приложения (у меня ли косяк).
3)что не так с кодом второго варианты. Почему функция "не видит" this?
4) в каких случаях необходимо организовывать store для POST запросов? или всегда можно обходится без store'в?

Всем спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2018, 18:52
Профессор
Отправить личное сообщение для siber-biber Посмотреть профиль Найти все сообщения от siber-biber
 
Регистрация: 07.08.2013
Сообщений: 214

Сообщение от Postgeograph Посмотреть сообщение
вопросы:
1) забираются ли значения формы в первом варианте вообще? Делал по нескольким экзамплам, не вижу блока кода который забирал бы значения перед POST запросом.
нет не забираются ..вы сами вызываете AJAX запрос на низком уровне используя метод Ext.Ajax.request(), он ничего не знает про форму стало быть никакие поля не передаются.

Сообщение от Postgeograph Посмотреть сообщение
2)может ли быть связана ошибка 403 с клиентской частью приложения (у меня ли косяк).
вряд ли, код 403 - forbidden (https://developer.mozilla.org/ru/doc...TTP/Status/403) идет от сервера, означает что запрещен запрос по урлу ..например обращаешься к директории, а операция index для неё запрещена на уровне веб сервера.

попробуйте этот url ('вашсервер/api/renter/') открыть в браузере (это будет GET запрос, а не POST но эксперимента ради пойдёт) и посмотрите результат.


Сообщение от Postgeograph Посмотреть сообщение
3)что не так с кодом второго варианты. Почему функция "не видит" this?
видимо контекст не тот что вы ожидали ..this в этом месте это не кнопка как вы видимо хотели, а например window. я всего кода не вижу, но на это обычно наступают все начинающие.
одно из решений - добавлять эту кнопку в методе initComponent (либо конструкторе) где scope уже однозначно инстанс этого класса.

Сообщение от Postgeograph Посмотреть сообщение
4) в каких случаях необходимо организовывать store для POST запросов? или всегда можно обходится без store'в?

Всем спасибо!
store для post запросов как таковых не нужен. store это хранилище данных ..грубо говоря таблица с записями.
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2018, 09:45
Интересующийся
Отправить личное сообщение для Postgeograph Посмотреть профиль Найти все сообщения от Postgeograph
 
Регистрация: 08.11.2018
Сообщений: 14

Спасибо, благодаря разъяснению разобрался с this.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Post запрос на другой сервер! magistr4815 AJAX и COMET 2 28.11.2017 11:48
AJAX post из IE на удаленный сервер Scorpion15 AJAX и COMET 6 18.06.2015 07:32
Запрос на сервер Serjuk AJAX и COMET 6 04.06.2012 03:09
POST запрос воспринимается как OPTIONS neshta AJAX и COMET 0 29.03.2011 23:34
Yahoo UI асинхронный POST запрос lisan AJAX и COMET 1 12.02.2010 13:57