почему я всегда получаю 404 на эту функцию? - PullRequest
0 голосов
/ 12 декабря 2011

Я использую эту функцию, чтобы проверить, существует ли веб-страница. Для этого я проверяю, есть ли у него заголовок. Но я всегда получаю 404, даже с пустым URL-адресом .. что я здесь не так делаю?

var xmlhttp;
function checkURL(url){
    xmlhttp=null; // initialize the request object
    // All the browsers except for the old IE
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest()
        xmlhttp.onreadystatechange=xmlhttpChange
        xmlhttp.open("HEAD",url,true)
        xmlhttp.send(null)
    }
    // old IE
    else if (window.ActiveXObject)
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
        if (xmlhttp)
        {
            xmlhttp.onreadystatechange=xmlhttpChange
            xmlhttp.open("HEAD",url,true)
            xmlhttp.send();
        }
    }
}

function xmlhttpChange()
{
    // if loaded
    if (xmlhttp.readyState==4)
    {
        // if head exists "OK"
       if (xmlhttp.status==200)
       {
           alert('URL exists')
       }
       else
       {
           alert("Status is "+xmlhttp.status)
       }
    }
}

Ответы [ 2 ]

5 голосов
/ 12 декабря 2011

Отлично работает для любой страницы, к которой у вас есть доступ.

Демо: http://jsfiddle.net/Guffa/dPMah/

Доступ к страницам в одном домене возможен только с использованием объекта XMLHTTP.

3 голосов
/ 12 декабря 2011

Я предполагаю, что переменная url будет содержать адреса для совершенно других сайтов, а не только для проверки внутренних путей в вашем приложении?Вы не можете использовать AJAX для другого домена, например, из-за Одинаковой политики происхождения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...