Extjs 4.2: Как правильно отправлять параметры в Ext.Ajax.Request POST

Я должен сделать POST из моего скрипта ExtJs, чтобы удалить что-то из моей БД:

Ext.Ajax.request({
    url: 'deleteRole.html',
    method: 'POST',          
    headers: {'Content-Type': 'text/html'},
    waitTitle: 'Connecting',
    waitMsg: 'Sending data...',                                     
    params: {
        "rolename" : rolename
    },
    scope:this,
    success: received,                                    
    failure: function(){console.log('failure');}
});

когда сообщение отправлено, я могу видеть в firebug роль в шрифте, но не в качестве параметра. Я хотел бы показать вам еще один пост (созданный с использованием Spring: form) относительно регистрации пользователя. Если я проверю сообщение, я увижу следующее:

image
(источник: subirimagenes.com)

И я могу получить параметры в моем контроллере, используя @RequestParam.

Но в сообщении о том, что у меня есть проблемы, я не вижу часть параметров, я вижу только часть Font (Fuente):

image2
(источник: subirimagenes.com)

Как следствие, мой контроллер пружины не обнаруживает никаких параметров. Что-то не так в моем POST?

Спасибо

Ответ 1

Проблема заключается в том, что вы используете строку headers: {'Content-Type': 'text/html'}, в исходном вопросе. Это установило бы содержимое в text/html вместо того, чтобы содержимое было опубликовано.

Ответ 2

Я решил его с помощью следующего кода:

var rolename = 'myRol';
Ext.Ajax.request({
    url: 'deleteRole.html',
    method: 'POST',          
    params: {
        rolename: rolename
    },
    success: received,                                    
    failure: function(){console.log('failure');}
});

Ответ 3

Я использую это в приложении Sencha Touch. Мне пришлось добавить дополнительную конфигурацию под названием jsonData и сделать ее правдой, иначе ничего не будет передано моему URL-адресу конечной точки.

Ext.Ajax.request({
    url: endpoint,
    method : "POST",
    headers: {
        'Content-Type': 'application/json'
    },
    params : {add: formattedAddress, lat: latitude},
    jsonData: true,
    useDefaultXhrHeader : false,
    withCredentials: true,                
    success : function(response) {
        Ext.Msg.alert("Success", 'yea');
    },
    failure : function(response) {
        var respObj = Ext.JSON.decode(response.responseText);
        Ext.Msg.alert("Error", respObj.status.statusMessage);
    }
});