Как можно сымитировать iframe запрос, используя axios/xmlhttprequest?

Для симуляции запроса iframe с использованием axios или XMLHttpRequest, вам надо создать запрос, который отправляет POST-запрос с контекстом iframe внутри.

Сначала мы создадим HTML-страницу, содержащую <form> с методом POST и атрибутом target="_blank". Внутри формы будет <input> с именем message и значением Hello, World!, а также кнопка "Submit" для отправки формы.

<!DOCTYPE html>
<html>
<head>
  <title>Simulated iFrame Request</title>
</head>
<body>
  <form action="http://example.com" method="POST" target="_blank">
    <input type="hidden" name="message" value="Hello, World!">
    <button type="submit">Submit</button>
  </form>
</body>
</html>

Чтобы симулировать такой запрос с использованием axios, вам необходимо отправить POST-запрос с данными, как указано выше.

const axios = require('axios');

axios.post('http://example.com', { message: 'Hello, World!' })
  .then(response => {
    console.log(response);
  })
  .catch(error => {
    console.error(error);
  });

axios.post отправляет POST-запрос по указанному URL с указанными данными. В приведенном случае мы отправляем данные { message: 'Hello, World!' } на http://example.com. Вы можете изменить URL и данные, чтобы соответствовать вашим потребностям.

Использование XMLHttpRequest для симуляции запроса iframe требует некоторого дополнительного кода в сравнении с axios.

const xhr = new XMLHttpRequest();

xhr.open('POST', 'http://example.com');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

xhr.onreadystatechange = function () {
  if (xhr.readyState === XMLHttpRequest.DONE) {
    if (xhr.status === 200) {
      console.log(xhr.responseText);
    } else {
      console.error(xhr.statusText);
    }
  }
};

const data = 'message=Hello%2C%20World%21';
xhr.send(data);

В приведенном примере мы открываем новый XMLHttpRequest с методом POST и указываем URL. Затем мы устанавливаем заголовок Content-Type на application/x-www-form-urlencoded, чтобы указать, что отправляемые данные будут преобразованы в URL-кодированный формат.

Затем мы определяем функцию onreadystatechange, которая будет вызываться при изменении состояния запроса. Здесь мы проверяем, что состояние запроса равно XMLHttpRequest.DONE, и если статус ответа - 200, то выводим содержимое ответа. В противном случае, выводим сообщение об ошибке.

Наконец, мы создаем строку данных, в которой message кодируется как Hello%2C%20World%21, и отправляем данные с помощью xhr.send(data).

Таким образом, с использованием axios или XMLHttpRequest, вы можете симулировать запрос iframe, отправляя POST-запрос с заданными данными на указанный URL.