ExtJs 4.1: Как отправить данные json в тело запроса с помощью Ext.Ajax.request()?

Я хотел бы отправить данные json с помощью Ext.Ajax.request(), затем получить доступ к нему в ASP.NET, используя Request.InputStream, который является содержимым тела запроса. Мне нужно указать, чтобы ExtJs записывал данные в тело запроса, как это делается при использовании Ext.data.proxy.Ajax.

Ответ 1

Укажите метод POST и просто используйте запрос jsonData config:

Ext.Ajax.request({
    url: 'myUrl',
    method: 'POST',
    params: {
        requestParam: 'notInRequestBody'
    },
    jsonData: 'thisIsInRequestBody',
    success: function() {
        console.log('success');
    },
    failure: function() {
        console.log('woops');
    }
});

Если вы хотите записать запись, написанную как JSON, вы также можете использовать JSON-writer.

var writer = Ext.create('Ext.data.writer.Json'),
    record = Ext.getStore('SomeStoreID').first();

Ext.Ajax.request({
    url: 'myUrl',
    method: 'POST',
    params: {
        requestParam: 'notInRequestBody'
    },
    jsonData: writer.getRecordData(record),
    success: function() {
        console.log('success');
    },
    failure: function() {
        console.log('woops');
    }
});