D2Admin使用ueditor上传图片,上传错误

由于做了前后端分离,所以存在跨域的问题。首先解决跨域的问题。

/php/controller.php

在6行左右,也就是header函数的后面,添加

// 允许跨域
header('Access-Control-Allow-Origin:*');//允许跨域
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
    header('Access-Control-Allow-Headers:x-requested-with,content-type,token');//浏览器页面ajax跨域请求会请求2次,第一次会发送OPTIONS预请求,不进行处理,直接exit返回,但因为下次发送真正的请求头部有带token,所以这里设置允许下次请求头带token否者下次请求无法成功
    exit("ok");
}

 

\public\lib\UEditor\ueditor.all.js,大约24582行

                // 下面三行注释掉
                // domUtils.on(iframe, 'load', callback);
                // form.action = utils.formatUrl(imageActionUrl + (imageActionUrl.indexOf('?') == -1 ? '?':'&') + params);
                // form.submit();
 
                var formdata = new FormData(form);
                var arr,reg=new RegExp("(^| )_token=([^;]*)(;|$)");

                var myForm = document.getElementById("myForm");
                var xhr= new XMLHttpRequest();
                xhr.open("POST", me.getOpt('serverUrl')+'?action=uploadimage', true);
                xhr.onreadystatechange = function() {
                    if (xhr.readyState === 4)
                        if ((xhr.status >=200 && xhr.status < 300) || xhr.status == 304)
                            alert(xhr.responseText);
                }
                xhr.send(formdata);

                xhr.onreadystatechange = function () {
                    if(xhr.readyState == 4) {
                        var response = JSON.parse(xhr.responseText);
                        if(response.state=='SUCCESS' ){
                            loader = me.document.getElementById(loadingId);
                            loader.setAttribute('src', me.getOpt('serverUrl')+response.url);
                            loader.setAttribute('_src', me.getOpt('serverUrl')+response.url);
                            loader.setAttribute('title', response.title || '');
                            loader.setAttribute('alt', response.original || '');
                            loader.removeAttribute('id');
                            domUtils.removeClasses(loader, 'loadingclass');
                        }
                    }
                }

 

posted @ 2019-11-29 00:03  长空5  阅读(386)  评论(0)    收藏  举报