【问题标题】:Check if a host is reachable from client's machine using jQuery and AJAX [duplicate]使用 jQuery 和 AJAX 检查是否可以从客户端机器访问主机 [重复]
【发布时间】:2017-01-19 10:17:11
【问题描述】:

如何检查是否可以从客户端机器访问某个主机(我自己的服务器除外)?例如,我会检查 https://www.facebook.com 是否可以访问。如果可以访问,那么只有我会在页面上放置一个 facebook 小部件。我可以在网上找到的解决方案依赖于从主机服务器加载一些资源。但是我只想ping服务器,如果它可以访问的话。我不知道要尝试加载什么资源。

【问题讨论】:

  • 我强烈建议你不要在 JS 中这样做,因为你很可能会被同源策略阻止。除非接收域在 JS 中明确允许第三方请求(这种情况极为罕见),否则请求将始终失败
  • @RoryMcCrossan 那么,你有什么建议?
  • 将AJAX发送到包含您要查找的域的本地服务器,然后让服务器执行跨域请求。
  • @RoryMcCrossan 但我想检查是否可以从客户端计算机访问特定主机。客户端可能位于某个网络中,可能会阻止对某些主机的访问。
  • 对不起,这在基于浏览器的 JS 中是不可能的。

标签: javascript jquery ajax


【解决方案1】:

使用这个:

$.ajax({url: "https://www.facebook.com",
        type: "HEAD",
        timeout:1000,
        statusCode: {
            200: function (response) {
                alert('Working!');
            },
            400: function (response) {
                alert('Not working!');
            },
            0: function (response) {
                alert('Not working!');
            }              
        }
 });

它会给你一个关于它的可达性状态的适当答案。

【讨论】:

  • 请在您的 sn-p 中包含 jQuery 参考 - 如果您要插入一个 sn-p,那应该可以工作。您可以从左侧菜单中选择 jQuery
  • 你真的试过这个吗?您将被 SOP 阻止:No 'Access-Control-Allow-Origin' header is present on the requested resourcejsfiddle.net/vh2Lessh
  • @RoryMcCrossan - 是的,这会引发 CORS 错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
  • 2016-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多