У меня есть <form>
, который я обычно отправляю с помощью кнопки submit
:
<form action='/doit' method='post'>
<input type='text' name='ex1_q1' value='AAA'>
<input type='text' name='ex2_q1' value='BVB'>
<input type='submit' value='Go'>
</form>
Это работает.
Каждые 10 секунд я также хочу (молча, в фоновом режиме) отправьте это <form>
содержимое с AJAX. Однако я заметил, что при этом:
setInterval(function() {
var fd = new FormData(document.querySelector('form'));
fd.append("dt", +new Date);
var xhr = new XMLHttpRequest();
xhr.open("POST", "/doit");
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(fd);
}, 10 * 1000);
данные действительно отправляются, но сервер не получает их в том же формате , что при отправке с помощью кнопки «Отправить».
Точнее:
при отправке с Ajax / XHR тело выглядит примерно так:
b'------WebKitFormBoundaryQb7yIKHLZODhAjqI\r\nContent-Disposition: form-data; name="ex1_q1"\r\n\r\nAAA\r\n------WebK
при отправке с помощью кнопки Отправить я получаю:
b'ex1_q1=AAA&ex2_q1=BVB&accept=on&numero=1'
, что мне нужно во всех случаях
Вопрос: с запросом XHR, как получить данные отправляются в том же формате, что и кнопка «Отправить» (случай 2)?