Я пишу программное обеспечение для автоматизации на JavaScript внутри TamperMonkey.
Мой сценарий выполняет несколько запросов AJAX, которые возвращают HTML, которые я анализирую с помощью DOMParser. Мне было интересно, можно ли отправить эти формы, не открывая только что возвращенный HTML на главной странице.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


да. Вам нужно получить форму из тела документа, создать объект FormData и установить значения полей, а также отправить запрос POST.
Для простоты я использовал Fetch API: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API. Я также предположил, что учетные данные также должны быть переданы из того же источника.
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'
})
}