为什么我总是在这个功能上获得404?

时间:2011-12-12 08:27:29

标签: javascript xmlhttprequest

我正在使用此功能检查网页是否存在。为此,我正在检查它是否有标题。但我总是得到404,即使有一个空白的网址..我在这里做错了什么?

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 个答案:

答案 0 :(得分:5)

它适用于您可以访问的任何页面。

演示:http://jsfiddle.net/Guffa/dPMah/

您只能使用XMLHTTP对象访问同一域中的页面。

答案 1 :(得分:3)

我假设url变量将包含完全其他站点的地址,而不仅仅是用于检查应用程序中的内部路径?由于Same Origin Policy,您无法将AJAX转移到其他域。