锦妖和她的小伙伴们 2018-04-11
查看了ueditor.all.js得源代码发现单图片上传是在选择文件输入框change得时候执行表单Submit,但是出现一个问题请求头没有加入Cookie,导致后端身份认证失败,上传最终失败。
ueditor.all.js 24603行原代码:
domUtils.on(iframe, 'load', callback); form.action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?':'&') + params); form.submit();
后改为了jquery提交form表单,解决了问题,
/*修改UEDITOR源码,form提交文件改为ajax上传*/ function ajaxUploadFile(url, form) { $.ajax({ cache: true, type: "POST", url: url, data: new FormData(form),// 你的formid processData: false, contentType: false, error: function (request) { }, success: function (json) { var link, json, loader, body = (iframe.contentDocument || iframe.contentWindow.document).body, result = body.innerText || body.textContent || ''; link = me.options.imageUrlPrefix + json.url; if (json.state == 'SUCCESS' && json.url) { loader = me.document.getElementById(loadingId); loader.setAttribute('src', link); loader.setAttribute('_src', link); loader.setAttribute('title', json.title || ''); loader.setAttribute('alt', json.original || ''); loader.removeAttribute('id'); domUtils.removeClasses(loader, 'loadingclass'); } else { showErrorLoader && showErrorLoader(json.state); } form.reset(); } }); } var action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?' : '&') + params); ajaxUploadFile(action, form); //domUtils.on(iframe, 'load', callback); //form.action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?':'&') + params); //form.submit();
不知何故 原form submit 请求头未携带cookie,求解