spring-mvc使用ajaxFileUpload上传文件总是进入error方法
来源:互联网 发布:猫和老鼠胡桃夹子知乎 编辑:程序博客网 时间:2024/05/15 20:43
改变其中的js部分:
uploadHttpData : function(r, type) {var data = !type;data = type == "xml" || data ? r.responseXML : r.responseText;// If the type is "script", eval it in global contextif (type == "script")jQuery.globalEval(data);// Get the JavaScript object, if JSON is used.if (type == "json")// eval( "data = " + data );// data会被加<pre>导致AJAX不走success方法,改为如下形式// eval("data = \" "+data+" \" ");data = jQuery.parseJSON(data);// evaluate scripts within htmlif (type == "html")jQuery("<div>").html(data).find('script').remove();return data;},
另外附上源代码:
jQuery.extend({createUploadIframe : function(id, uri) {// create framevar frameId = 'jUploadFrame' + id;var iframeHtml = '<iframe id="'+ frameId+ '" name="'+ frameId+ '" style="position:absolute; top:-9999px; left:-9999px"';if (window.ActiveXObject) {if (typeof uri == 'boolean') {iframeHtml += ' src="' + 'javascript:false' + '"';} else if (typeof uri == 'string') {iframeHtml += ' src="' + uri + '"';}}iframeHtml += ' />';jQuery(iframeHtml).appendTo(document.body);return jQuery('#' + frameId).get(0);},createUploadForm : function(id, fileElementId, data) {// Create formvar formId = 'jUploadForm' + id;var fileId = 'jUploadFile' + id;var form = jQuery('<form action="" method="POST" name="'+ formId + '" id="' + formId+ '" enctype="multipart/form-data"></form>');// Handle filesif (typeof (fileElementId) == "string") {fileElementId = [ fileElementId ];}for ( var i in fileElementId) {var oldElement = jQuery('#' + fileElementId[i]);var newElement = jQuery(oldElement).clone();jQuery(oldElement).attr('id', fileId);jQuery(oldElement).before(newElement);jQuery(oldElement).appendTo(form);}// Handle dataif (data) {for ( var i in data) {jQuery('<textarea name="' + i+ '" style="display:none;">' + data[i]+ '</textarea>').appendTo(form);}}// Set attributesjQuery(form).css('position', 'absolute');jQuery(form).css('top', '-1200px');jQuery(form).css('left', '-1200px');jQuery(form).appendTo('body');return form;},ajaxFileUpload : function(s) {// introduce global settings, allowing the client to modify them// for all requests, not only timeouts = jQuery.extend({}, jQuery.ajaxSettings, s);var id = new Date().getTime();var form = jQuery.createUploadForm(id, s.fileElementId,(typeof (s.data) == 'undefined' ? false : s.data));var io = jQuery.createUploadIframe(id, s.secureuri);var frameId = 'jUploadFrame' + id;var formId = 'jUploadForm' + id;// Watch for a new set of requestsif (s.global && !jQuery.active++) {jQuery.event.trigger("ajaxStart");}var requestDone = false;// Create the request objectvar xml = {};if (s.global)jQuery.event.trigger("ajaxSend", [ xml, s ]);// Wait for a response to come backvar uploadCallback = function(isTimeout) {var io = document.getElementById(frameId);try {if (io.contentWindow) {xml.responseText = io.contentWindow.document.body ? jQuery('<div>').html(io.contentWindow.document.body.innerHTML).text(): null;xml.responseXML = io.contentWindow.document.XMLDocument ? io.contentWindow.document.XMLDocument: io.contentWindow.document;} else if (io.contentDocument) {xml.responseText = io.contentWindow.document.body ? jQuery('<div>').html(io.contentWindow.document.body.innerHTML).text(): null;xml.responseXML = io.contentDocument.document.XMLDocument ? io.contentDocument.document.XMLDocument: io.contentDocument.document;}} catch (e) {jQuery.handleError(s, xml, null, e);}if (xml || isTimeout == "timeout") {requestDone = true;var status;try {status = isTimeout != "timeout" ? "success": "error";// Make sure that the request was successful or// notmodifiedif (status != "error") {// process the data (runs the xml through// httpData regardless of callback)var data = jQuery.uploadHttpData(xml,s.dataType);// If a local callback was specified, fire it// and pass it the dataif (s.success)s.success(data, status);// Fire the global callbackif (s.global)jQuery.event.trigger("ajaxSuccess", [ xml,s ]);} elsejQuery.handleError(s, xml, status);} catch (e) {status = "error";jQuery.handleError(s, xml, status, e);}// The request was completedif (s.global)jQuery.event.trigger("ajaxComplete", [ xml, s ]);// Handle the global AJAX counterif (s.global && !--jQuery.active)jQuery.event.trigger("ajaxStop");// Process resultif (s.complete)s.complete(xml, status);jQuery(io).unbind();setTimeout(function() {try {jQuery(io).remove();jQuery(form).remove();} catch (e) {jQuery.handleError(s, xml, null, e);}}, 100);xml = null;}};// Timeout checkerif (s.timeout > 0) {setTimeout(function() {// Check to see if the request is still happeningif (!requestDone)uploadCallback("timeout");}, s.timeout);}try {var form = jQuery('#' + formId);jQuery(form).attr('action', s.url);jQuery(form).attr('method', 'POST');jQuery(form).attr('target', frameId);if (form.encoding) {jQuery(form).attr('encoding', 'multipart/form-data');} else {jQuery(form).attr('enctype', 'multipart/form-data');}jQuery(form).submit();} catch (e) {jQuery.handleError(s, xml, null, e);}jQuery('#' + frameId).load(uploadCallback);return {abort : function() {}};},uploadHttpData : function(r, type) {var data = !type;data = type == "xml" || data ? r.responseXML : r.responseText;// If the type is "script", eval it in global contextif (type == "script")jQuery.globalEval(data);// Get the JavaScript object, if JSON is used.if (type == "json")// eval( "data = " + data );// data会被加<pre>导致AJAX不走success方法,改为如下形式// eval("data = \" "+data+" \" ");data = jQuery.parseJSON(data);// evaluate scripts within htmlif (type == "html")jQuery("<div>").html(data).find('script').remove();return data;},handleError : function(s, xml, status, e) {// If a local callback was specified, fire itif (s.error)s.error(xml, status, e);// Fire the global callbackif (s.global)jQuery.event.trigger("ajaxError", [ xml, s, e ]);}});
1 0
- spring-mvc使用ajaxFileUpload上传文件总是进入error方法
- ajaxFileUpload进行文件上传时,总是进入error
- ajaxFileUpload进行文件上传时,总是进入error
- 解决使用ajaxFileUpload上传控件出现的问题:回调函数总是进入error或success
- spring mvc中ajaxfileupload多文件上传
- ajaxfileupload上传文件成功后总是指向error
- ajaxfileupload.js上传文件后总是调用error函数
- spring mvc 文件、图片上传(极简)ajaxFileUpload 出现 syntax error 的错误
- ajaxfileupload文件上传返回值处理 ajaxfileupload.js + spring mvc文件上传
- spring mvc 下使用ajaxfileupload.js 异步上传文件 并返回信息 各种问题解决
- spring mvc 文件、图片上传(极简)ajaxFileUpload
- 使用ajaxfileupload上传文件
- Asp.net MVC中使用JQuery插件ajaxFileUpload上传文件
- spring mvc+ajaxfileupload 实现异步上传图片
- 用ajaxFileUpload上传附件时,总是跳转到error函数
- 使用ajaxFileUpload实现文件上传
- 使用ajaxfileupload.js上传文件
- 使用springMVC + ajaxfileupload上传文件
- 常用的liunx命令
- 安徽大学(线性代数第一章详细答案)
- C语言中fgets()函数
- svn与git的区别
- iOS10+x-code8 个人踩坑
- spring-mvc使用ajaxFileUpload上传文件总是进入error方法
- input输入框,你还可以输入多少字?
- [Python Learning]Whetting Your Appetite
- C++中getline()函数
- Grails 快速入门(一)
- Shader特效——“旋转粒子”的实现【GLSL】
- HTC Vive之Unity3d开发日记——手柄交互编程
- Makefile例子,能够引用子目录下的源文件,并将二进制文件存放到相应目录
- Ubuntu 安装Navicat,界面出现乱码解决方法