Я не знаю, как определить, является ли HTTP-запрос, сгенерированный прокси-сервером AJAX, операцией вставки / обновления или удаления.
Это мои данные (simpsons.json):
[
{
"id": 1,
"firstName": "Homer"
},
{
"id": 2,
"firstName": "Marge"
},
{
"id": 3,
"firstName": "Bart"
},
{
"id": 4,
"firstName": "Lisa"
}
]
Это мой код Sencha Touch 1.1:
Character = Ext.regModel('Character', {
fields: [
{name: 'id', type: 'int'},
{name: 'firstName', type: 'string'}
]
});
SimpsonsStore = new Ext.data.Store({
model: 'Character',
proxy: {
type: 'rest',
url: 'simpsons.json'
},
autoLoad: true
});
SimpsonsStore.on('load', function(store, records, success) {
// add record
store.add({id: 5, firstName: 'Maggie'});
// update record
var margeRecord = store.findRecord('firstName', 'Marge');
margeRecord.set('firstName', 'Marjorie');
// delete record
var homerRecord = store.findRecord('firstName', 'Homer');
store.remove(homerRecord);
// sync store
store.sync();
});
При выполнении этого кода генерируются следующие HTTP-запросы:
POST /simpsons.json/5?_dc=1321377134028 HTTP/1.1
{"records":[{"id":5,"firstName":"Maggie"}]}
.
PUT /simpsons.json/2?_dc=1321377142625 HTTP/1.1
{"records":[{"id":2,"firstName":"Marjorie"}]}
.
DELETE /simpsons.json/1?_dc=1321377148457 HTTP/1.1
{"records":[{"id":1,"firstName":"Homer"}]}
Как и у каждой операции, есть собственный метод HTTP-запроса (глагол).
Когда я изменяю тип прокси с «rest» на «ajax», генерируемые HTTP-запросы выглядят так:
POST /simpsons.json?_dc=1321376787918 HTTP/1.1
{"records":[{"id":5,"firstName":"Maggie"}]}
.
POST /simpsons.json?_dc=1321376792207 HTTP/1.1
{"records":[{"id":2,"firstName":"Marjorie"}]}
.
POST /simpsons.json?_dc=1321376798158 HTTP/1.1
{"records":[{"id":1,"firstName":"Homer"}]}
Как вы можете видеть, они очень похожи.Это не проблема для операций вставки или обновления.Но как сервер может обнаружить, что последний HTTP-запрос не является ни вставкой, ни обновлением, а действием удаления ?
Я нашел параметр конфигурации "api" вSencha Touch 2.0 в том виде, в каком он существует в Ext JS 4, но я не нашел способа определить различные URL или параметры для конкретных действий прокси-сервера AJAX в Sencha Touch 1.1.
Любая помощь приветствуется.
Спасибо,
Уве