可以使用AJAX提交表单(从带有AJAX的页面加载)吗?

时间:2016-11-18 17:29:19

标签: javascript ajax forms

我正在研究内部网站的用户脚本(我相信,有很多ASP.NET WebForms)。我正在尝试自动化一些事情,我想要完成的是通过AJAX加载页面,然后使用AJAX在此页面上提交表单。表单有多个提交按钮,我想执行单击其中一个按钮的等效操作。以下是我目前正在使用的简化版本。它似乎不起作用(如果我加载了页面并且通常没有点击按钮就会执行的操作)并且我不确定我是否犯了错误。

fetch(URL, {
    credentials: 'same-origin'
}).then(response => response.text()).then(text => {
    const parser = new DOMParser();
    const doc = parser.parseFromString(text, 'text/html');
    const form = doc.getElementById('Form1');
    const button = doc.getElementById('uc_btnDelete');
    const data = new FormData(form);
    data.set(button.name, button.value); //submit the form as if uc_btnDelete was clicked
    fetch(form.action, {
        method: form.method,
        body: data,
        credentials: 'same-origin'
    }).then(response => response.text()).then(text => {
        //success
    });
});

1 个答案:

答案 0 :(得分:0)

要回答我自己的问题,问题似乎是引用网址不是服务器所期望的。我认为window.history.replaceState()是我的解决方案。