Javascript检查站点url是否可访问

Javascript检查站点url是否可访问,javascript,jquery,Javascript,Jquery,我试图找到最好的jquery方法来检查站点url是否可访问。我需要做的就是确认用户可以访问该站点。然而,对于CORS,我不太确定最好的方法。我一直在尝试,但遇到了一些问题 $.ajax({ type: 'HEAD', url: url, success: function(){ callback(true); }, error: function() { callback(false); } }); 但我得到了以下

我试图找到最好的jquery方法来检查站点url是否可访问。我需要做的就是确认用户可以访问该站点。然而,对于CORS,我不太确定最好的方法。我一直在尝试,但遇到了一些问题

  $.ajax({
    type: 'HEAD',
    url: url,
    success: function(){
      callback(true);
    },
    error: function() {
      callback(false);
    }
  });
但我得到了以下错误:

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://my-site.com. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
实现这一目标的最佳方式是什么


谢谢

由于跨源限制,您将无法在客户端执行此操作。您必须在服务器端运行一些服务。

您可以尝试添加值为true的跨域属性,也可以通过true初始化支持cors

$.support.cors = true;

$.ajax({
    type: 'HEAD',
    url: url,
    crossDomain: true,
    succees: function(){
      callback(true);
    },
    error: function() {
      callback(false);
    }
 });
你可以用`

function UrlExists(url, cb){
            jQuery.ajax({
                url:      url,
                dataType: 'text',
                type:     'GET',
                complete:  function(xhr){
                    if(typeof cb === 'function')
                       cb.apply(this, [xhr.status]);
                }
            });
        }

        UrlExists('-- Insert Url Here --', function(status) {
            if(status === 200) {
                -- Execute code if successful --
            } else if(status === 404) {
                -- Execute code if not successful --
            }else{
               -- Execute code if status doesn't match above --
            }
        });

注意:成功不是成功。想想这个。。。收到CORS标头错误将表明客户端可以访问该站点。如果用户无法解析URL,则不会收到CORS错误。如果URL已关闭,则不会出现CORS错误。@S.Walker这也是一个有效点。。也许这不是一个简单的方法。@S.Walker你不知道。很多人都有ISP,可以自动应答无效主机名的请求。或者,WiFi上的专属门户页面。没有一种方法可以区分跨源。问题是我想测试从客户端浏览器(而不是服务器)到某些站点的连接。@AaronA由于跨源限制,您不能。当然,除非网站允许你这么做。。。但如果他们这样做了,我想你不会问这个问题。这并不能解决问题中概述的跨来源问题。