Extjs 4.2: как правильно отправлять параметры в Ext.Аякс.Запрос 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 имя роли в шрифте, но не как param. Я хотел бы показать вам еще один пост (сделанный с spring:form) относительно регистрации пользователя. Если я проверю сообщение, я могу увидеть следующее:

изображение http://s2.subirimagenes.com/otros/previo/thump_8498731post.jpg

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

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

image2 http://s2.subirimagenes.com/otros/previo/thump_8498737delete.jpg

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

спасибо

3 ответов


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


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

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

Я использую это в приложении 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);
    }
});