【问题标题】:XMLHttpRequest only check server is connect or not, It is not check the URLXMLHttpRequest 只检查服务器是否连接,不检查 URL
【发布时间】:2013-04-10 18:07:30
【问题描述】:
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”是否可用。

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

【问题讨论】:

    标签: javascript ajax url xmlhttprequest


    【解决方案1】:

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

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

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

    JavaScript?没有。

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

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

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

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

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

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

    【讨论】:

    • 昆汀的回答很好。删除我的:)
    • 感谢您的回答。如果使用HTML5 web socket有什么办法可以解决上述问题
    猜你喜欢
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 2022-01-12
    相关资源
    最近更新 更多