ExtJS 4 - Проблемы с JsonStore + почтовый запрос - PullRequest
5 голосов
/ 06 сентября 2011

Я пытаюсь вызвать API с помощью запроса POST. Но мой Chrome Inspector показывает мне method='GET' на вкладке сети ...

Вот мой код:

Ext.define('TestItem', {
        extend: 'Ext.data.Model',
        fields: [ 
            {name: 'id', type: 'int'},
            {name: 'name', type: 'string'}
    ]
    });

    var testStore = Ext.create('Ext.data.JsonStore', {
        model: 'TestItem',
        autoLoad: true,
        proxy: {
            type: 'ajax',
            url : '../path_to/api/',
            method : 'POST',
            reader: {
                type: 'json',
                root: 'data',
                totalProperty: 'total'
            }
        },
        baseParams: { 
            operation:'showall' 
        }
    });

Итак, вы хотите вызвать API с method='POST' и параметром operation = showall

Инспектор Google показывает мне на вкладке сети следующую информацию:

GET ../path_to/api/?_dc=1315297478131&page=1&start=0&limit=25 HTTP/1.1

Почему это GET-запрос?

Почему существуют некоторые параметры, такие как limit, start и dc?

Я уже пробовал 1000 учебников и гуглил всю ночь.

1 Ответ

17 голосов
/ 06 сентября 2011

В методе extjs4: POST не работает. В extjs4 любое чтение отправляется GET, а любая запись (POST, PUT, DELETE) отправляется POST. Чтобы изменить это, см. ActionMethods.

type: 'ajax',
actionMethods: {
    create : 'POST',
    read   : 'POST',
    update : 'POST',
    destroy: 'POST'
}
...