JQuery.post 执行失败 'postMessage'

JQuery.post Failed to execute 'postMessage'

我想执行一个简单的 $.post()

function(formData) {

var path = reg ? "login" : "regester";
formData.bundle_id = window.bundleId;
app.error = false;
app.unknown = false;
$.post(("/kanban/"+path+"/submit"),{"form":formData},function(data){
    if(data.success){
        window.location.href=data.redir;
    }
    else if(data.user) {
        window.location.href="/kanban";
    }
    else {
        app.error = true;
    }
})
.fail(function(jqXHR, textStatus, errorThrown) {
    app.unkown = true;
});
}

该应用由

定义
const app = new Vue({...});

目前,调用函数时出现错误

jquery.js:8463 Uncaught TypeError: Failed to execute 'postMessage' on 'Window': 2 arguments required, but only 0 present.
at add (jquery.js:8463)
at buildParams (jquery.js:8450)
at buildParams (jquery.js:8444)
at Function.jQuery.param (jquery.js:8483)
at Function.ajax (jquery.js:9073)
at Function.jQuery.(/kanban/anonymous function) [as post] (https://127.0.0.1/kanban/js/jquery.js:9355:17)
at submitForm (register?bundle_id=-1:84)
at <anonymous>:1:1

我不确定是什么原因造成的。这可能是一个简单的语法错误,但我找不到。

我从这里调用我的 js 方法

<form action="javascript:submitForm(this)">
......
</form>

我 运行 Google Chrome 版本 69.0.3497.81 jquery-3.3.1 我还在这个页面上加载了 vue.js 和 alertify.js。

我是否遗漏了语法问题?或者是否有可能重叠。

您正在尝试将表单元素作为数据传递给 $.post,但无法序列化。

尝试更改为

var data = $(formData).serialize()
$.post("/kanban/"+path+"/submit", data, function(data){..

现在服务器接收数据的方式与使用默认浏览器进程提交表单的方式完全相同

也会考虑将 formData 的名称更改为 form 以尽量减少混淆