Можно ли посылать запросы на другой сайт, если он это разрешает?

Да, с использованием JavaScript вы можете отправлять запросы на другой сайт, если этот сайт разрешил такую возможность. Это осуществляется с помощью технологии, называемой XMLHttpRequest (XHR), или с использованием более нового API Fetch.

XMLHttpRequest позволяет создавать и отправлять асинхронные HTTP запросы к серверу. Вот пример использования:

var xhr = new XMLHttpRequest();
xhr.open("GET", "https://example.com/data", true);
xhr.onreadystatechange = function() {
    if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
        var response = xhr.responseText;
        console.log(response);
    }
}
xhr.send();

В этом примере создается объект XMLHttpRequest, вызывается метод open() для настройки запроса (в данном случае это GET запрос на https://example.com/data), устанавливается обработчик события onreadystatechange, который будет вызываться при изменении состояния запроса, и наконец, отправляется запрос с помощью метода send().

API Fetch предоставляет более современный и удобный способ выполнения запросов. Вот пример использования:

fetch("https://example.com/data")
    .then(response => response.text())
    .then(data => console.log(data))
    .catch(error => console.log(error));

В этом примере функция fetch() принимает URL запроса и возвращает промис, который разрешается в объект Response. Затем с помощью метода text() полученный объект Response преобразуется в текстовый формат, и после этого данные выводятся в консоль. Здесь также присутствует обработка возможных ошибок с помощью метода catch().

Однако, стоит отметить, что существуют ограничения на выполнение запросов между разными доменами из соображений безопасности, известные как Same-Origin Policy. В основном, браузеры запрещают выполнение таких запросов из JavaScript кода, но эту политику можно обойти с помощью CORS (Cross-Origin Resource Sharing) или других техник, если целевой сервер поддерживает это.

Конфигурация CORS на сервере позволяет указывать, какие запросы с других доменов могут быть выполнены. Это может быть XSS (Cross-Site Scripting) эксплоит, поэтому следует быть осторожными при настройке CORS.

В заключение, используя JavaScript, вы можете отправлять запросы на другие сайты, если они разрешают это с помощью CORS или других механизмов. Однако, всегда соблюдайте политику безопасности и учитывайте потенциальные уязвимости.