报错截图
报错源码
ueditor.all.js:8897
UE.Editor.prototype.loadServerConfig = function() {
var me = this;
setTimeout(function() {
try {
me.options.imageUrl &&
me.setOpt(
"serverUrl",
me.options.imageUrl.replace(
/^(.*[\/]).+([\.].+)$/,
"$1controller$2"
)
);
var configUrl = me.getActionUrl("config"),
isJsonp = utils.isCrossDomainUrl(configUrl);
/* 发出ajax请求 */
me._serverConfigLoaded = false;
configUrl &&
UE.ajax.request(configUrl, {
method: "GET",
dataType: isJsonp ? "jsonp" : "",
onsuccess: function(r) {
try {
var config = isJsonp ? r : eval("(" + r.responseText + ")");
utils.extend(me.options, config);
// console.log('me.options.before',me.options);
// console.log('server.config',config);
// console.log('me.options.after',me.options);
me.fireEvent("serverConfigLoaded");
me._serverConfigLoaded = true;
} catch (e) {
showErrorMsg(me.getLang("loadconfigFormatError"));
}
},
onerror: function() {
showErrorMsg(me.getLang("loadconfigHttpError"));
}
});
} catch (e) {
showErrorMsg(me.getLang("loadconfigError"));
}
});
function showErrorMsg(msg) {
console && console.error(msg);
//me.fireEvent('showMessage', {
// 'title': msg,
// 'type': 'error'
//});
}
};
核查
网上搜索了一波,感觉都不对路,于是看了下源码与F12,发现是初始化编辑器的时候,它向后台发起了次网络请求:
就是只要配置了ueditor.config.js:46的serverUrl服务器配置,这插件就会从服务器请求获取配置,我的是配置了后台图片服务器地址,然而对于action=config是直接返回了个null,它eval执行null就报错了。
解决方案
-
方案1
不配置ueditor.config.js:46的serverUrl就得了,啥事都没有,但是上传啥的功能就不能用; -
方案2
看源码,返回json就平安无事,我的后台是JAVA,那就对这个请求后台直接返回new JSONObject()即可。