如何在javascript中全局覆盖html表单上的提交

如何在javascript中全局覆盖html表单上的提交,javascript,forms,submit,csrf,Javascript,Forms,Submit,Csrf,我今天一整天都在努力解决这个问题,我发现了这个问题,但它的准确率只有50%,因此我决定与大家分享这个解决方案,因为它可能对csrf的实施非常有用。例如,任何类型的表单提交解决方案: //form.submit()js调用的代码 //单击按钮类型提交的代码 对于csrf实现,覆盖XMLHttpRequest.prototype.open在ajax请求中也很有用,方法是在标头中设置csrf: HTMLFormElement.prototype._submit = HTMLFormElement.pr

我今天一整天都在努力解决这个问题,我发现了这个问题,但它的准确率只有50%,因此我决定与大家分享这个解决方案,因为它可能对csrf的实施非常有用。例如,任何类型的表单提交解决方案:

//form.submit()js调用的代码

//单击按钮类型提交的代码

对于csrf实现,覆盖XMLHttpRequest.prototype.open在ajax请求中也很有用,方法是在标头中设置csrf:

HTMLFormElement.prototype._submit = HTMLFormElement.prototype.submit;
     
function newSubmit() {
    //add code here

    this._submit();
}

HTMLFormElement.prototype.submit = newSubmit;
function newRequestSubmit(submitter) {       
    if (submitter.srcElement.tagName === "FORM") {
     // add code here
    }
}

document.body.addEventListener("submit", newRequestSubmit);