FastAdmin 在线命令生成时出错的分析
出错现象
版本环境
FastAdmin 版本:1.0.0.20180806_beta
在线命令插件版本:1.0.3
分析
2018-08-13 16:12
查看了 command.js 的源码,当点下执行时是通过 Fast.api.ajax 提交到 command/command/action/execute 进行执行的,但是不知道为什么,错误的信息是从 command/command/add 返回的。
$(document).on('click', ".btn-execute", function () {
var form = $(this).closest("form");
var textarea = $("textarea[rel=result]", form);
textarea.val('');
Fast.api.ajax({
url: "command/command/action/execute",
data: form.serialize(),
}, function (data, ret) {
textarea.val(data.result);
window.parent.$(".toolbar .btn-refresh").trigger('click');
return false;
}, function () {
window.parent.$(".toolbar .btn-refresh").trigger('click');
});
});
2018-08-14 08:53
求助无果,晚上再分析了,使用 Chrome 调试,虽然没有调试出什么结果,不过,发现有提交了两次。
然后发现问题所在,type 为 submit 时会提交两次,一次是 ajax,一次是提交到当前方法。
<button type="submit" class="btn btn-success btn-embossed btn-execute">{:__('立即执行')}</button>
解决
TODO