s yu Ответов: 1

Проверки статуса URL-адреса


Я использую приведенный ниже код для проверки состояния URL-адреса
var req = getReq();

try {
    req.open("GET", 'https://www.yahoo.com', false);
    //req.open("GET", 'http://myWebSite/' + s, false);
    req.send("");
} catch (e) {
    success = false;
    error_msg = "Error: " + e;
}
alert(req.status);

//function checkUrl(url) {
function getReq() {
    var req = false;
    if (window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch (e) {
            req = false;
        }
    } else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {
            req = false;
        }
    }
    if (!req) {
        alert("Your browser does not support XMLHttpRequest.");
    }
    return req;
}

Однако он всегда возвращает false. Сам не знаю почему. Пожалуйста, помогите, если можете. Спасибо.

Что я уже пробовал:

Проверьте состояние URL - адреса-не работает с помощью опубликованного кода

1 Ответов

Рейтинг:
1

Dave Kreskowiak

Ваш код будет терпеть неудачу практически во всем, потому что современные браузеры больше не поддерживают элементы управления ActiveX. ActiveX оказался огромным риском для безопасности!


s yu

На самом деле, я не использовал ActiveXObject. Что я хочу сделать, так это использовать AJAX, чтобы проверить, есть ли на веб-странице файл изображения (http://..../theImage.jpg) существует. Если я использую IE, я могу проверить xhr.status (например, 200 или 400). Но для Chrome я получил ошибку: "потому что его тип MIME ('image/png') не является исполняемым." Есть идеи, как с этим справиться? Спасибо.

Dave Kreskowiak

Вы не можете сделать это с помощью javascript в браузере. XmlHttpRequest не может загрузить страницу из чего-либо, кроме домена, из которого браузер извлек эту страницу.

Итак, если браузер получил этот код со страницы вашего сайта, www.mypage.com, он может только когда-либо извлекать данные с других страниц (URL-адресов) по адресу www.mypage.com-да.

Это делается по соображениям безопасности.

Если вы хотите получить статус URL-адреса для другого сайта, это должно быть сделано с помощью серверного кода, а не клиентского javascript.