laravel使用layui富文本编辑器layedit上传图片419解决办法

laravel框架+layui做系统时,后台需要使用到富文本编辑器,首选当然简单的layui自带的layedit啦,不过上传图片时报错:“请求上传接口异常”,查看返回 “419 unknown status”,很明显没有上传需要_token值,应该是ajax提交不包含data数据,果断修改:

layedit.set({
        uploadImage:{
            url:'/admin/upload',
            type:'post',
            data:{
                _token:$('meta[name=csrf-token]').attr('content')
            }
        }
    })

并没有用,查看请求头,并没有携带token参数,查看文档,并没有相应方法,那就只能去修改源码了。

1. 找到layui-src/dist/layer/modules/layedit.js,复制解压缩,搜索 uploadImage 找到如下内容

image: function (a) {
                        var n = this;
                        layui.use("upload", function (o) {
                            var r = l.uploadImage || {};
                            o.render({
                                url: r.url,
                                method: r.type,
                                elem: e(n).find("input")[0],
                                done: function (e) {
                                    0 == e.code ? (e.data = e.data || {}, v.call(t, "img", {
                                        src: e.data.src,
                                        alt: e.data.title
                                    }, a)) : i.msg(e.msg || "上传失败")
                                }
                            })
                        })
                    },

修改为

image: function (a) {
                        var n = this;
                        layui.use("upload", function (o) {
                            var r = l.uploadImage || {};
                            o.render({
                                url: r.url,
                                data: r.data,
                                method: r.type,
                                elem: e(n).find("input")[0],
                                done: function (e) {
                                    0 == e.code ? (e.data = e.data || {}, v.call(t, "img", {
                                        src: e.data.src,
                                        alt: e.data.title
                                    }, a)) : i.msg(e.msg || "上传失败")
                                }
                            })
                        })
                    },

2. 将代码压缩,而后替换layui-src/dist/layer/modules/layedit.js内容

再测试 OK

原文地址:https://www.cnblogs.com/convincee/p/10846308.html