Je crois que tout le monde utilise souvent des opérations de téléchargement de fichiers dans son travail. Parce que je travaille sur le front-end, je présente principalement les opérations de l'Ajax dans le front-end. J'ai omis beaucoup de code, prenez juste js
$ .ajaxFileUpload ({url: 'www.coding / mobi / file / uploadsinglefile.html', // processus de processus d'image sécurisé: false, fileelementID: 'image2', // id de contrôle de fichier. Il s'agit de type d'entrée = "file" id = "Image2" datatype: 'json', suit: function: data, status) {console.log (data); fonction (data, status, e) {alert (e);Selon le tutoriel, il n'y a pas de problème si vous téléchargez de cette façon, mais il a toujours signalé une erreur. J'ai oublié ce qui a été signalé. Je suis désolé, car je me souviens de compenser cet article après l'avoir utilisé pendant longtemps, mais si j'ai besoin de modifier son code source, l'erreur peut être résolue.
Le dernier paragraphe de son code source ressemble à ceci
uploadHttpData: fonction (r, type) {var data =! type; data = type == "xml" || données ? R.Responsexml: R.ResponSeText; // Si le type est "script", évaluez-le dans un contexte global si (type == "script") jQuery.GlobaleVal (données); // Obtenez l'objet JavaScript, si JSON est utilisé. if (type == "JSON") eval ("data =" + data); // Évaluer les scripts dans html if (type == "html") jQuery ("<div>"). html (data) .eValScripts (); // alert ($ ('param', data) .each (function () {alert ($ (this) .attr ('value'));})); retourner les données; }Changer ce paragraphe à cela
uploadHttpData: fonction (r, type) {var data =! type; data = type == "xml" || données ? R.Responsexml: R.ResponSeText; // Si le type est "script", évaluez-le dans un contexte global si (type == "script") jQuery.GlobaleVal (données); // Obtenez l'objet JavaScript, si JSON est utilisé. if (type == "JSON") {// Parce que les données JSON seront enveloppées par la balise <pre>, il y a un problème. Ajoutez maintenant le code suivant, // mise à jour par hzy var reg = /<pre.+?>(.+)<//pre>/g; var result = data.match (reg); résultat = regexp. 1 $; // Mette à jour les données de fin = $ .parsejson (résultat); // eval ("data =" + data); // Évaluer les scripts dans html} if (type == "html") jQuery ("<div>"). html (data) .eValScripts (); // alert ($ ('param', data) .each (function () {alert ($ (this) .attr ('value'));})); retourner les données; }Cela fonctionnera normalement.
Un autre cas: AjaxFileUpload rapporte cette erreur jQuery.HandLeerror n'est pas une fonction
Seules les versions avant la version 1.4.2 ont une méthode de gestionnaire. La jQuery utilisée dans l'exemple est 1.2. Solution:
Afin de continuer à utiliser AjaxFileUpload pour télécharger nos pièces jointes, j'ai dû copier le code suivant dans le fichier ajaxfileupload.js dans notre projet
handleerror: function (s, xhr, status, e) {// Si un rappel local a été spécifié, licenciez-le if (s.error) {s.error.call (s.context || s, xhr, status, e); } // tire le rappel global if (s.global) {(s.Context? JQuery (s.Context): jQuery.Event) .trigger ("ajaxerror", [xhr, s, e]); }}Pour un contenu plus excitant, veuillez vous référer aux sujets spéciaux "Résumé de la technologie de téléchargement AJAX", "Résumé de l'opération de téléchargement de fichiers JavaScript" et "JQuery Upload Operation Résumé" pour l'apprentissage.
Ce qui précède est la solution au problème des erreurs de rapport dans ajaxupload.js. J'espère que cela peut vous aider à résoudre les difficultés. J'espère également que vous continuerez à prêter attention à un contenu plus excitant sur wulin.com.