XMLHttpRequest只检查服务器是否连接,不检查URL

时间:2013-04-10 18:07:31

标签: javascript ajax url xmlhttprequest

function check()
{
    if (window.XMLHttpRequest){
            // code for IE7+, Firefox, Chrome, Opera, Safari
                var request = new XMLHttpRequest();
        }
        else{
            // code for IE6, IE5
            var request = new ActiveXObject("Microsoft.XMLHTTP");
        }

        dname="http://www.w3schools.com/js/default/gfdghkjfdh.html";
        request.open("HEAD", dname,true);
        request.send();
        if(request.status !== 404){ 
            window.location.href=dname;
        }
        else{
            window.location.href="http://www.google.com";
        }
    }    

以上代码仅检查服务器是否已连接,不检查URL的最后部分“gfdghkjfdh.html”是否可用。

有任何方法可以检查网址“http://www.w3schools.com/js/default/gfdghkjfdh.html” 正确使用javascript或任何客户端技术。 Plz任何人帮助我

1 个答案:

答案 0 :(得分:0)

  

以上代码仅检查服务器是否已连接,不检查URL的最后部分“gfdghkjfdh.html”是否可用。

不,它没有。 XHR向第三方服务器发出HTTP请求,没有获得CORS标头,允许它将从该服务器获取的信息公开给在其他人页面上运行的JavaScript,然后不将状态暴露给脚本。 / p>

  

有任何方法可以使用javascript或任何客户端技术正确检查网址"http://www.w3schools.com/js/default/gfdghkjfdh.html"

的JavaScript?否。

其他客户端技术?也许

签名的Java小程序可能能够(如果用户在支持Java的平台上运行(因此不是移动的),并且安装了Java,并接受安全警报,并且首先在浏览器中允许Java (考虑到最近出现的安全问题,这不是一个好主意))。

ActiveX控件可能能够(如果用户在Windows上运行足够旧版本的Internet Explorer,并接受安全警报)。

Flash ......可能不行。我认为它需要一个crossdomain.xml文件来授予它权限。

那么,其他客户端技术呢?也许,但不是以任何实际的方式。

您可以为自己的服务器创建XMLHttpRequest,然后让您自己的服务器尝试联系第三方服务器。这会增加您自己服务器上的负载,有时您的服务器与第三方服务器之间的连接将与​​它与客户端之间的连接不同。