Saya percaya bahwa semua orang sering menggunakan operasi unggahan file dalam pekerjaan mereka. Karena saya sedang mengerjakan front-end, saya terutama memperkenalkan operasi Ajax di front-end. Saya menghilangkan banyak kode, ambil saja JS
$ .AJAXFILEUPLOAD ({url: 'www.coding/mobi/file/unggaheSinglefile.html', // Proses skrip gambar Secureuri: false, fileElementId: 'image2', // file kontrol. Kesalahan: Fungsi (Data, Status, E) {Alert (E);Menurut tutorial, tidak ada masalah jika Anda mengunggah dengan cara ini, tetapi selalu melaporkan kesalahan. Saya lupa apa yang dilaporkan. Maaf, karena saya ingat untuk menebus artikel ini setelah menggunakannya untuk waktu yang lama, tetapi jika saya perlu memodifikasi kode sumbernya, kesalahan dapat diselesaikan.
Paragraf terakhir dari kode sumbernya terlihat seperti ini
unggahhttpdata: function (r, type) {var data =! type; data = type == "xml" || data? R.Responsexml: R.Responsetext; // Jika jenisnya adalah "skrip", evaluasi dalam konteks global jika (type == "skrip") jQuery.globaleval (data); // Dapatkan objek JavaScript, jika JSON digunakan. if (type == "json") eval ("data =" + data); // evaluasi skrip dalam html if (type == "html") jQuery ("<div>"). html (data) .evalscripts (); // alert ($ ('param', data) .each (function () {alert ($ (this) .attr ('value'));})); pengembalian data; }Ubah paragraf ini menjadi ini
unggahhttpdata: function (r, type) {var data =! type; data = type == "xml" || data? R.Responsexml: R.Responsetext; // Jika jenisnya adalah "skrip", evaluasi dalam konteks global jika (type == "skrip") jQuery.globaleval (data); // Dapatkan objek JavaScript, jika JSON digunakan. if (type == "json") {// karena data json akan dibungkus dengan tag <pred>, ada masalah. Sekarang tambahkan kode berikut, // Perbarui oleh hzy var reg = /<pre.+?>(.+)<//pre>/g; var result = data.match (reg); hasil = regexp. $ 1; // perbarui data akhir = $ .parsejson (hasil); // eval ("data =" + data); // evaluasi skrip dalam html} if (type == "html") jQuery ("<div>"). html (data) .evalscripts (); // alert ($ ('param', data) .each (function () {alert ($ (this) .attr ('value'));})); pengembalian data; }Ini akan bekerja secara normal.
Kasus Lain: AjaxfileUpload melaporkan kesalahan ini.
Hanya versi sebelum versi 1.4.2 yang memiliki metode handlererror. JQuery yang digunakan dalam contoh adalah 1.2. Larutan:
Untuk terus menggunakan AjaxfileUpload untuk mengunggah lampiran kami, saya harus menyalin kode berikut ke dalam file Ajaxfileupload.js dalam proyek kami
HandleError: function (s, xhr, status, e) {// Jika panggilan balik lokal ditentukan, tembak jika (S.Error) {s.error.call (s.context || s, xhr, status, e); } // Fire callback global if (s.global) {(s.context? JQuery (s.context): jQuery.event) .trigger ("Ajaxerror", [xhr, s, e]); }}Untuk konten yang lebih menarik, silakan merujuk ke topik khusus "Ringkasan Teknologi Upload Ajax", "Ringkasan Operasi Pengunggahan File JavaScript" dan "Ringkasan Operasi Unggah JQuery" untuk Pembelajaran.
Di atas adalah solusi untuk masalah pelaporan kesalahan di jaxupload.js. Saya harap ini dapat membantu Anda menyelesaikan kesulitan. Saya juga berharap Anda akan terus memperhatikan konten yang lebih menarik di wulin.com.