查看了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,求解
更多专业前端知识,请上 【猿2048】www.mk2048.com