Tôi có công việc tuyệt vời là phải hoàn thành công việc ban đầu được trao cho nhà thầu nhưng chưa bao giờ được hoàn thành. Không phải là một vấn đề tuy nhiên tôi đã được nói rằng hệ thống phải hỗ trợ Firefox 3.6! Không tuyệt vời nhưng không phải cái gì tôi sẽ mất ngủ cho đến bây giờ! Hệ thống có chức năng Ajax sử dụng đối tượng FormData và sau đó tải lên một tài liệu (thường là PDF). Tôi đã chạy này thông qua trình duyệt Firefox 3.6 và tôi nhận được sauFormData không được xác định - Firefox 3.6.28 thay thế
"FormData không được định nghĩa"
var formData = new FormData ($ ('form') [0]);
Đó là tốt như tôi có thể thấy rằng đối tượng này không được hỗ trợ, tôi chỉ cần sử dụng một phương pháp hoặc các phương tiện thu khác nhau ... Tôi sử dụng này:
var formData = Components.classes["@mozilla.org/files/formdata;1"]
.createInstance(Components.interfaces.nsIDOMFormData);
Tuy nhiên điều này đã cho tôi lỗi sau đây!
Permission denied cho http://10.29.100.23:8080 để có được tài sản XPCComponents.classes
Tôi đã không chắc chắn lý do tại sao điều này là ... là con đường "@mozilla.org/files/formdata;1
" không chính xác? Tôi đã nghiên cứu thêm và không nhận được đâu! Vì vậy, tôi thì nghĩ về serializing hình thức thay đổi sau đây để ...
var formData = {};
$.each($('form')[0].serializeArray(), function(_, kv) {
if (formData.hasOwnProperty(kv.name)) {
formData[kv.name] = $.makeArray(formData[kv.name]);
formData[kv.name].push(kv.value);
}else {
formData[kv.name] = kv.value;
}
});
mặc dù lỗi này didn # t chức năng Ajax đã không được tải lên (tôi đoán nó không được công nhận hoặc tìm các tập tin hoặc nó là chỉ cần thu thập một chuỗi cho giá trị tệp). Có ai có bất kỳ đề xuất về một thay thế cho FormData trong các trình duyệt cũ, đặc biệt là Firefox 3.6 - đó là trình duyệt cũ duy nhất tôi phải hỗ trợ.
** cập nhật ****
đây là nội dung của các hình thức trên trang HTML
<form action="" method="post" enctype="multipart/form-data" name="uploadForm" id="uploadForm" target="#">
<label for="fileField">Rechnung hochladen</label>
<input type="file" name="fileField" id="fileField">
<progress id="progressbar" class="progressbar_margin hidden"></progress>
</form>
Yếu tố nào có trong biểu mẫu? Nếu chúng không có đầu vào, bạn sẽ có thể sử dụng '$ ('theForm'). Serialize()' làm thuộc tính 'data' của lệnh' .ajax() '. – Matt
biểu mẫu đơn giản và bao gồm những điều sau đây (xem câu hỏi gốc) –
Nếu câu hỏi có thể được lặp lại là "sử dụng ajax để tải lên tệp" thì điều này có thể giúp: http://stackoverflow.com/questions/1686099/file- upload-via-ajax-within-jquery Trang http://valums.com/ajax-upload/ cho biết nó hỗ trợ firefox 3.6+. Có một ngã rẽ rõ ràng hơn đến nay tại https://github.com/bencolon/file-uploader –