Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Формирование запросов (https://javascript.ru/forum/extjs/48810-formirovanie-zaprosov.html)

Infarch 17.07.2014 18:49

Формирование запросов
 
Здравствуйте.

У меня есть базовая модель, в ней определена схема:
Ext.define("Communication.model.Base", {
	extend: "Ext.data.Model"
	,schema: {
		namespace: 'Communication.model',
		proxy: {
			type: "ajax",
			url: "/json?cmd=communication.api&entity={entityName}",
			reader: {
				type: "json"
			}
		}
	}
});

Это вполне подходит для получения данных с сервера, ибо выполняется GET. Проблема начинается когда я что либо меняю в модели и вызываю save().
На сервер уходит запрос POST, на адрес типа "/json?_dc=1405606415659&cmd=communication.api&entit y=entity.Subject", а телом этого запроса идет json с измененными полями и айди: "{"name":"Subject 5 xxxx","id":5}".
Ввиду некоторых особенностей серверной архитектуры это неприемлемо, мне нужен POST на урл "/json", в котором все данные перечислены как пары имя-значение. Например так: "cmd=communication.api&entity=entity.Subject&json= ...". Подскажите пожалуйста, как настроить прокси на формирование пост запросов такого типа?

Raydezm 06.08.2014 22:57

А почему бы тогда не GET? Ведь именно GET рассчитан на то чтобы передавать всё в самой ссылке.

Infarch 08.08.2014 17:01

Если я настраиваю тип операции апдейта GET то происходит запрос, get, на указанный адрес, а больше ничего не посылается.

Raydezm 08.08.2014 18:53

Я больше к тому что зачем нужен POST если все параметры GET.

Можно в ручную получить все значения из store и любым необходимым методом собрать ссылку и сделать Ext.Ajax запрос руками с необходимыми параметрами и полученной ссылкой.

Infarch 08.08.2014 19:12

Это я конечно могу, руками то собрать. А идея в том, чтобы механизмы ExstJS использовать. Ручную работу оставлю на крайний случай, если уж совсем никак не выйдет то что мне нужно.

Raydezm 08.08.2014 19:54

http://docs.sencha.com/extjs/5.0.0/a...method-getData - получаем данные,
http://docs.sencha.com/extjs/5.0.0/a...ethod-getProxy - получаем прокси
http://docs.sencha.com/extjs/5.0.0/a...setExtraParams и пишем в прокси наши особые данные.
А дальше save().

Вот такой вот путь для особых GET.


Часовой пояс GMT +3, время: 14:38.