Javascript 在使用DOMParser检索的文档中提交表单

Javascript 在使用DOMParser检索的文档中提交表单,javascript,ajax,dom,tampermonkey,Javascript,Ajax,Dom,Tampermonkey,我正在JavaScript中编写自动化软件 我的脚本很少执行AJAX请求,这些请求返回我使用DOMParser解析的HTML。我想知道是否可以提交这些表单,而不必在主页上实际打开新返回的HTML。是的。您需要从文档体获取表单,创建FormData对象并设置字段值,然后发送POST请求 为了简单起见,我使用了FetchAPI:。我还假设凭据也需要从同一来源传递 fetch('<GET URL>', {method: "GET", credentials: 'same-origin'})

我正在
JavaScript
中编写自动化软件


我的脚本很少执行
AJAX
请求,这些请求返回我使用
DOMParser
解析的
HTML
。我想知道是否可以提交这些表单,而不必在主页上实际打开新返回的
HTML

是的。您需要从文档体获取表单,创建FormData对象并设置字段值,然后发送POST请求

为了简单起见,我使用了FetchAPI:。我还假设凭据也需要从同一来源传递

fetch('<GET URL>', {method: "GET", credentials: 'same-origin'})
  .then((response) => (response.text()))
  .then((responseBody) => {
    var html = htmlBody(responseBody);
    var form = html.querySelector('#my-form'); // whatever your form is called
    var formData = new FormData();

    formData.append('someName', 'someValue'); // the field name will probably come from your form fields

    postForm(formData)
      .then((response) => (response.text()))
      .then((responseBody) => {
        // whatever with the form post response
    });
})

function htmlBody(string) {
  var document = new DOMParser;
  return document.parseFromString(string, 'text/html').body;
}

function postForm(formData) {
  return fetch('<POST URL>', {
    method: 'POST',
    body: formData,
    credentials: 'same-origin'
  })
}
fetch(“”,{method:'GET',凭证:'same origin'})
。然后((response)=>(response.text()))
.然后((响应体)=>{
var html=htmlBody(responseBody);
var form=html.querySelector(“#我的表单”);//无论您的表单被调用什么
var formData=new formData();
append('someName','someValue');//字段名可能来自表单字段
postForm(formData)
。然后((response)=>(response.text()))
.然后((响应体)=>{
//不管是什么形式的post回复
});
})
函数htmlBody(字符串){
var document=新的DOMParser;
return document.parseFromString(string,'text/html').body;
}
函数postForm(formData){
返回fetch(“”{
方法:“POST”,
正文:formData,
凭据:“相同来源”
})
}