2013-06-19 12 views
10

mam zrobić post z mojego skryptu ExtJS, aby usunąć coś z mojego DB:ExtJS 4.2: Jak wysłać parametrów odpowiednio w 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');} 
}); 

gdy poczta jest wysyłana w firebugie widzę nazwę roli w kroju czcionki, ale nie jako parametr. Chciałbym pokazać inny post (wykonany w spring: form) w odniesieniu do rejestracji użytkownika. Jeśli mogę kontrolować stanowisko widzę następujące:

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

i mogę uzyskać parametry w moim kontroler używając @RequestParam.

jednak na stanowisku, że mam problemy nie widzę część parametrów, mogę tylko zobaczyć Font (Fuente) część:

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

W konsekwencji, mój kontroler nie wiosna wykryć dowolny parametr. Czy coś jest nie tak w moim POST?

Dziękuję

Odpowiedz

10

Problemem jest to, że korzystasz z linii headers: {'Content-Type': 'text/html'}, w oryginalnym pytanie. W ten sposób treść zostanie zmieniona na text/html, a nie na zawartość będącą post-danymi.

+0

tak, wielkie dzięki @Reimius. – mannuk

7

I rozwiązać go za pomocą następującego kodu:

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

Powinieneś przynajmniej podać zasługę, która pomogła ci rozwiązać problem. – Eric

+0

Rozwiązał to, zanim napisałem, myślałem, że może chce wiedzieć, dlaczego jego odpowiedź rozwiązała problem. Zakłada się, że po prostu próbował rzeczy, aż zadziałało i nie wiadomo dlaczego. – Reimius

4

Używam tego w aplikacji Sencha Touch. Musiałem dodać dodatkową konfigurację o nazwie jsonData i uczynić ją prawdziwą, inaczej nic nie zostanie przekazane do mojego adresu końcowego punktu końcowego.

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); 
    } 
}); 
Powiązane problemy