2013-06-19 6 views
10

Parameter richtig in einem Ext.Ajax.Request POST senden Ich habe eine POST von meinem ExtJs Skript zu tun, um etwas aus meiner DB zu löschen:ExtJS 4.2: Wie

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

, wenn die Post gesendet ich kann im firebug den rolename in font aber nicht als param sehen. Ich möchte Ihnen einen anderen Beitrag (mit Feder: Form) relativ zur Benutzerregistrierung zeigen.

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

und ich kann die Parameter in meinem Controller @RequestParam bekommen: Wenn ich den Posten inspizieren kann ich folgendes sehen.

Aber in der Post, dass ich Probleme habe ich nicht die Parameter Teil sehen kann, kann ich nur die Schriftart (Fuente) Teil sehen:

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

Als Folge wird meine Feder-Controller nicht einen beliebigen Parameter erkennen. Ist es etwas falsch in meinem POST?

Danke

Antwort

10

Das Problem ist, dass Sie die Zeile headers: {'Content-Type': 'text/html'}, in Ihrer ursprünglichen Frage verwenden. Dies würde den Inhalt auf text/html setzen, anstatt dass der Inhalt post-Daten ist.

+0

Ja, vielen Dank @Reimius. – mannuk

7

ich es mit dem folgenden Code gelöst:

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

Sie sollten zumindest der Antwort, die Ihnen geholfen hat, das Problem zu lösen, Kredit geben. – Eric

+0

Er hat es gelöst, bevor ich gepostet habe, ich dachte nur, er würde vielleicht wissen wollen, warum seine Antwort es gelöst hat. Dies setzt voraus, dass er nur Dinge versucht hat, bis es funktioniert hat und nicht warum. – Reimius

4

Ich benutze dies in einer Sencha Touch App. Ich musste eine zusätzliche Konfiguration hinzufügen, die jsonData genannt wurde und sie wahr machen, sonst wird nichts an meine Endpunkturl weitergegeben.

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