2013-06-19 7 views
10

я должен сделать POST из моего ExtJS сценария, чтобы удалить что-то из моей БД:Extjs 4.2: Как отправить параметры правильно в Ext.Ajax.Request POST

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

image http://s2.subirimagenes.com/otros/previo/thump_8498731post.jpg

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

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

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

Как следствие, моя весна контроллер не обнаружить любой параметр. Это что-то не так в моей POST?

Спасибо

ответ

10

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

+0

Да, большое спасибо @Reimius. – mannuk

7

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

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

Вы должны хотя бы отдать должное ответу, который помог вам решить проблему. – Eric

+0

Он решил это, прежде чем я отправил, я просто подумал, что он может знать, почему его ответ решил. Это предполагает, что он просто пробовал вещи, пока это не сработало, и неизвестно почему. – Reimius

4

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