2013-06-19 8 views
10

devo fare un post dal mio script ExtJs al fine di eliminare qualcosa dal mio DB:ExtJS 4.2: Come inviare i parametri correttamente in un 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');} 
}); 

quando la posta viene inviata Riesco a vedere nel firebug il rolename nel font ma non come un parametro. Vorrei mostrarti un altro post (realizzato con spring: form) relativo alla registrazione dell'utente. Se i ispezionare il palo posso vedere il seguente:

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

E posso ottenere i parametri nel mio controller utilizzando @RequestParam.

Ma nel post che ho problemi non riesco a vedere la parte dei parametri, posso vedere solo la (Fuente) parte dei caratteri:

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

Di conseguenza, il mio controller di primavera non lo fa rilevare qualsiasi parametro. C'è qualcosa di sbagliato nel mio POST?

Grazie

risposta

10

Il problema è che si sta utilizzando la linea headers: {'Content-Type': 'text/html'}, nella domanda iniziale. Ciò imposterà il contenuto in text/html invece del contenuto che è post-dati.

+0

sì, molte grazie @Reimius. – mannuk

7

ho risolto con il seguente codice:

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

Si dovrebbe almeno dare credito alla risposta che ti ha aiutato a risolvere il problema. – Eric

+0

L'ha risolto prima di pubblicare, ho solo pensato che avrebbe voluto sapere perché la sua risposta l'aveva risolta. Questo presuppone che abbia appena provato le cose finché non ha funzionato e non ha saputo perché. – Reimius

4

Lo sto utilizzando in un'app Sencha Touch. Ho dovuto aggiungere una configurazione aggiuntiva chiamata jsonData e renderla vera oppure non viene passato nulla all'URL del mio endpoint.

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); 
    } 
}); 
Problemi correlati