web-dev-qa-db-fra.com

Extjs 4.2: comment envoyer correctement les paramètres dans un Ext.Ajax.Request POST

Je dois faire un POST de mon script ExtJs afin de supprimer quelque chose de ma base de données:

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');}
});

lorsque le message est envoyé, je peux voir dans le firebug le nom volé en police, mais pas en tant que paramètre. Je voudrais vous montrer une autre publication (faite avec spring: form) relative à l'inscription de l'utilisateur. Si j'inspecte le poste, je peux voir ce qui suit:

image
(source: subirimagenes.com )

Et je peux obtenir les paramètres dans mon contrôleur en utilisant @RequestParam.

Mais dans le message que j'ai des problèmes, je ne peux pas voir la partie paramètres, je ne peux voir que la partie police (Fuente):

image2
(source: subirimagenes.com )

Par conséquent, mon contrôleur de ressort ne détecte aucun paramètre. Quelque chose ne va pas dans mon POST?

Je vous remercie

11
mannuk

Le problème est que vous utilisez la ligne headers: {'Content-Type': 'text/html'}, dans votre question d'origine. Cela définirait le contenu sur text/html au lieu que le contenu soit des données de publication.

11
Reimius

Je l'ai résolu avec le code suivant:

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

J'utilise ceci dans une application Sencha Touch. J'ai dû ajouter une configuration supplémentaire appelée jsonData et la rendre vraie, sinon rien n'est transmis à mon URL de point de terminaison.

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);
    }
});
6
paddys_1