Получение исходного кода HTML через XMLHttpRequest [JavaScript]

XMLHttpRequest работает для первого URL, но он не работает для второго URL. Я думаю, что эта функция не работает для динамических веб-страниц. Я также пробовал ajax, чтобы получить HTML-источник, но он тоже не работал. Что я могу сделать? Как я могу изменить этот код для работы для второго URL?

<script language="Javascript" type="text/javascript">

function getSource(url)
{
    var req = new XMLHttpRequest();
    req.open(
        "GET",
        url,
        true);
    req.onreadystatechange = statusListener;
    req.send(null);
    function statusListener()
    {
    if (req.readyState == 4) 
        {
            if (req.status == 200)
            {
                var doc=req.responseText;
                alert(doc);
            }
        }
    }
}

url1 = "https://pages.github.com/";
url2 = "https://stackru.com/";

// This code WORKS
getSource(url1);

// This code DON'T WORK
getSource(url2);
</script>

1 ответ

Решение

Я запустил ваш код в JSFiddle и получил сообщение об ошибке, в котором говорится, что это проблема CORS. Вы можете просмотреть эти сообщения об ошибках, открыв консоль Javascript в своем браузере.

Сообщение об ошибке, как видно в консоли Javascript

Проблемы CORS (Cross-Origin Resources Sharing) возникают, когда у вас недостаточно прав для доступа к ресурсам между разными доменами. На каждом веб-сервере установлены политики, определяющие правила доступа к этим файлам, а параметры безопасности Stack Overflow настроены так, чтобы запретить такой доступ к их сайту. Вы можете прочитать больше о CORS здесь.

Другие вопросы по тегам