Javascript 为什么我总是在这个函数上得到404?
我正在使用此功能检查网页是否存在。要做到这一点,我检查它是否有一个标题。但我总是得到一个404,即使有一个空白的url。。我做错了什么Javascript 为什么我总是在这个函数上得到404?,javascript,xmlhttprequest,Javascript,Xmlhttprequest,我正在使用此功能检查网页是否存在。要做到这一点,我检查它是否有一个标题。但我总是得到一个404,即使有一个空白的url。。我做错了什么 var xmlhttp; function checkURL(url){ xmlhttp=null; // initialize the request object // All the browsers except for the old IE if (window.XMLHttpRequest) { xml
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)
}
}
}
我假设
url
变量将包含指向其他站点的地址,而不仅仅是用于检查应用程序中的内部路径?您不能将AJAX添加到另一个类似的域,因为。它适用于允许您访问的任何页面
演示:
您只能使用XMLHTTP对象访问同一域中的页面。但如果不可能,是否有其他方法可以检查我域之外的url中的标题?正如Guffa指出的,您的代码确实会生成404在不违反同源策略时的其他值。那里没有足够的代码来告诉您为什么不能在同一个域中工作,但可能您缺少了一个初始斜杠,或者
url
变量中的某些内容。您应该能够在浏览器的开发工具中查看同一域内的请求,并查看请求的URL以及响应。如果您也使用服务器端语言,您可以向自己的服务器发送AJAX请求,让服务器向远程URL提交请求,并返回状态代码的指示。我的服务器不包括服务器php端包含的内容和其他一些内容,所以我的选择有点有限。这就是为什么我想要一个干净的javascript代码来检查网站是否在线。在php中,你可以尝试file\u get\u contents($url)代码>。出于安全原因,在javascript中无法做到这一点。