我正在研究内部网站的用户脚本(我相信,有很多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
});
});
答案 0 :(得分:0)
要回答我自己的问题,问题似乎是引用网址不是服务器所期望的。我认为window.history.replaceState()
是我的解决方案。