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