2013-04-15 28 views
9

Chúng tôi đang sử dụng extjs and webapi(C#) cho ứng dụng của chúng tôi. Biểu mẫu của tôi có kiểm soát fileupload. Khi chúng tôi sử dụng form.sumbit() trong extjs, nó sẽ không hoạt động thành công.Lỗi khi sử dụng form.submit()

đang WebAPI:

bool SaveData(Employee obj) 
{ 
    return true; 
} 

đang ExtJS:

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


       }, 
       failure: function (fp, o) 
       { 

       } 
      }); 

tôi nhận được câu trả lời là đúng trong tất cả các trình duyệt. Trong Chrome nó đi vào thành công, Nhưng trong Firefox its not.

+0

Bạn đã kiểm tra với FireBug ...? – RajeshKdev

+0

Và cũng có thể xem Bảng điều khiển Firefox bằng 'Ctrl + Shift + J' – RajeshKdev

+0

Nếu biểu mẫu là nhiều phần, tôi ngạc nhiên khi thông báo thành công đang hoạt động, xem có thể gửi qua iframe, nếu extjs 4 có triển khai tương tự với 3 để xử lý dữ liệu tệp. – Reimius

Trả lời

1

Cố gắng thêm trong param datatype như vậy:

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

    }, 
    failure: function (fp, o) { 

    } 
}); 

Tôi cũng đã thấy nó thực hiện theo cách này: (thay thế json_data_here với bất kỳ dữ liệu nào bạn cần gửi)

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

thử thêm chức năng ẩn danh bên nộp thay vì một json:

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


       }, 
       failure: function (fp, o) 
       { 

       } 
      }); 
1

Hãy thử điều này:

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

hhhmmm. lạ. Tôi nghĩ rằng tôi đã tìm thấy lỗi. FireFox không thích khi tôi đặt trạng thái 'asyncron' thành 'false' để yêu cầu tập lệnh chờ phản hồi của yêu cầu serverrequest.

thay vì http.open ("GET", destURL, true); Tôi đang sử dụng http.open ("GET", destURL, false);

Firefox dont accept asynchron Option on "false"

1

Tôi không chắc đây có phải là vấn đề không. Nhưng không nộp tải lên đòi hỏi một enctype Hãy thử sử dụng

enctype = multipart/form-data 

này có thể giúp

0

Sử dụng mã dưới đây.

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) 
       { 

       } 
      }); 

Tôi vừa thay đổi loại nội dung.

Các vấn đề liên quan