Creo que todos a menudo usan operaciones de carga de archivos en su trabajo. Debido a que estoy trabajando en el front-end, presento principalmente las operaciones de Ajax en el front-end. Omití mucho código, solo toma js
$ .AJAXFILEUPLOAD ({URL: 'www.coding/mobi/file/uploadSingleFile.html', // Process Image script secureuri: false, fileElementId: 'image2', // file de control ID. ITS IT Tipo = "archivo" ID = "Image2" DataType: 'json', éxito: function (datos, datos, status) {CUANDO. función (datos, estado, e) {alerta (e);Según el tutorial, no hay problema si sube de esta manera, pero siempre ha informado un error. Olvidé lo que se informó. Lo siento, porque recuerdo compensar este artículo después de usarlo durante mucho tiempo, pero si necesito modificar su código fuente, el error se puede resolver.
El último párrafo de su código fuente se ve así
uploadhttpdata: function (r, type) {var data =! type; data = type == "xml" || datos ? R.Responsexml: R.Responsetext; // Si el tipo es "script", evalúoelo en contexto global if (type == "script") jQuery.globaleval (datos); // Obtener el objeto JavaScript, si se usa JSON. if (type == "json") eval ("data =" + data); // Evaluar los scripts dentro de html if (type == "html") jQuery ("<div>"). html (data) .evalscripts (); // alert ($ ('param', data) .each (function () {alert ($ (this) .attr ('value'));})); devolver datos; }Cambiar este párrafo a esto
uploadhttpdata: function (r, type) {var data =! type; data = type == "xml" || datos ? R.Responsexml: R.Responsetext; // Si el tipo es "script", evalúoelo en contexto global if (type == "script") jQuery.globaleval (datos); // Obtener el objeto JavaScript, si se usa JSON. if (type == "json") {// Porque los datos JSON serán envueltos por la etiqueta <pre>, hay un problema. Ahora agregue el siguiente código, // Actualizar por Hzy var reg = /<pre.+?>(.+)) </pre>/g; resultado var = data.match (reg); resultado = regexp. $ 1; // actualizar datos de finalización = $ .Parsejson (resultado); // eval ("data =" + data); // Evaluar los scripts dentro de html} if (type == "html") jQuery ("<div>"). html (data) .evalscripts (); // alert ($ ('param', data) .each (function () {alert ($ (this) .attr ('value'));})); devolver datos; }Esto funcionará normalmente.
Otro caso: AjaxFileUpload informa este error jQuery.HandleError no es una función
Solo las versiones antes de la versión 1.4.2 tienen el método HandlerError. La jQuery utilizada en el ejemplo es 1.2. Solución:
Para continuar usando AjaxFileUpload para cargar nuestros archivos adjuntos, tuve que copiar el siguiente código en el archivo AjaxFileUpload.js en nuestro proyecto
HandleError: function (s, xhr, status, e) {// Si se especificó una devolución de llamada local, dispara it if (s.error) {s.error.call (s.context || s, xhr, status, e); } // dispara la devolución de llamada global if (s.global) {(s.context? JQuery (s.context): jQuery.event) .trigger ("ajaxerror", [xhr, s, e]); }}Para obtener un contenido más emocionante, consulte los temas especiales "Resumen de tecnología de carga AJAX", "Resumen de operación de carga de archivos JavaScript" y "Resumen de operación de carga de jQuery" para el aprendizaje.
Lo anterior es la solución al problema de informar errores en Ajaxupload.js. Espero que pueda ayudarlo a resolver las dificultades. También espero que continúe prestando atención a un contenido más emocionante en wulin.com.