首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLHttpRequest仅检查服务器是否已连接,而不检查

XMLHttpRequest仅检查服务器是否已连接,而不检查
EN

Stack Overflow用户
提问于 2013-04-11 02:07:31
回答 1查看 361关注 0票数 0
代码语言:javascript
复制
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";
        }
    }    

上面的代码只检查服务器是否连接,不检查网址的最后一部分"gfdghkjfdh.html“是否可用。

有任何方法可以使用javascript或任何客户端技术来正确检查URL "http://www.w3schools.com/js/default/gfdghkjfdh.html“。有谁能帮帮我

EN

回答 1

Stack Overflow用户

发布于 2013-04-11 02:14:43

上面的代码只检查服务器是否连接,不检查URL的最后一部分"gfdghkjfdh.html“是否可用。

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

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

JavaScript?不是的。

其他客户端技术?也许吧。

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

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

闪存…可能不能。我认为它需要一个crossdomain.xml文件才能授予它权限。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15933199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档