2013-04-15 20 views
9

Wir verwenden extjs and webapi(C#) für unsere Anwendung. Mein Formular hat eine fileupload Kontrolle. Wenn wir in extjs form.sumbit() verwenden, geht es nicht zur Erfolgsfunktion.Fehler bei der Verwendung von form.submit()

WebAPI Code:

bool SaveData(Employee obj) 
{ 
    return true; 
} 

ExtJS Code:

form.submit({ 
       url: '../api/Empcontroller/SaveData', 
       method: 'POST', 
       headers: { 
       'Content-Type': 'application/json' 
         }, 
       success: function (fp, o) 
       { 


       }, 
       failure: function (fp, o) 
       { 

       } 
      }); 

Ich erhalte die Antwort als wahr in allen Browsern. In Chrome kommt seine in den Erfolg, aber in Firefox its not.

+0

Haben Sie mit FireBug ...? – RajeshKdev

+0

Und sehen Sie auch die Firefox-Konsole durch 'Strg + Shift + J' – RajeshKdev

+0

Wenn das Formular mehrteilig ist, bin ich überrascht, dass die Erfolgsmeldung überhaupt funktioniert, wenn es über einen Iframe eingereicht wird, wenn extjs 4 eine ähnliche Implementierung wie 3 hat zur Handhabung von Dateidaten. – Reimius

Antwort

1

Versuchen Zugabe in den Datentyp param wie so:

form.submit({ 
    url: '../api/Empcontroller/SaveData', 
    method: 'POST', 
    headers: { 
     'Content-Type': 'application/json' 
    }, 
    dataType: 'json', 
    success: function (fp, o) { 

    }, 
    failure: function (fp, o) { 

    } 
}); 

ich habe es auch so gemacht gesehen: (ersetzen mit beliebigen Daten json_data_here Sie senden müssen)

form.submit(Ext.Ajax.request({  
    url: '/../api/Empcontroller/SaveData', 
    method: 'GET', 
    jsonData: json_data_here, 
    headers: {'Content-Type' : 'application/json' , 'Accept' : 'application/json'} 
})); 
1

Versuch innerhalb anonyme Funktion Hinzufügen einreichen anstelle eines json:

form.submit(function(){ 
       url: '../api/Empcontroller/SaveData', 
       method: 'POST', 
       headers: { 
       'Content-Type': 'application/json' 
         }, 
       success: function (fp, o) 
       { 


       }, 
       failure: function (fp, o) 
       { 

       } 
      }); 
1

dies ausprobieren:

form.submit(function(){ 
    url: '../api/Empcontroller/SaveData',method: 'POST', 
    headers: {'Content-Type': 'application/json'}, 
    success: function (fp, o){}, 
    failure: function (fp, o){} 
}); 
1

hhhmmm. seltsam. Ich denke, ich habe den Fehler gefunden. FireFox mag es nicht, wenn ich den Status 'asyncron' auf 'false' setze, um das Skript anzuweisen, auf die Antwort der Serveranfrage zu warten.

so statt http.open ("GET", destURL, wahr); Ich verwende http.open ("GET", destURL, false);

Firefox dont accept asynchron Option on "false"

1

Ich bin nicht sicher, ob dies das Problem ist. Aber nicht Upload-Datei benötigen einen enctype mit Versuchen

enctype = multipart/form-data 

Diese

0

Verwenden Sie den Code unten helfen könnte.

form.submit({ 
       url: '../api/Empcontroller/SaveData', 
       method: 'POST', 
       headers: { 
       'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' 
         }, 
       success: function (fp, o) 
       { 


       }, 
       failure: function (fp, o) 
       { 

       } 
      }); 

Ich habe gerade den Inhaltstyp geändert.

Verwandte Themen