Javascript 确定用户单击链接后该链接是否有效

Javascript 确定用户单击链接后该链接是否有效,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我提供了一个小部件,用户可以在其中存储他们创建的链接 换句话说,他们: 单击添加链接 模态弹出,他们输入信息:链接标题,链接URL,订单 通过AJAX将其保存到DB,然后刷新小部件以显示他们创建的所有用户链接 我想做的是,当用户单击他们的链接时,确定该链接是否存在(可能不在这个域上,这样我就可以看到一个可预见的问题w/AJAX),然后继续正常打开新窗口并发送给他们 然而,如果不是,我想产生一个咆哮般的信息,说的东西像 很抱歉,这个链接不存在, 请验证您的链接 我基本上需要在客户端的基础上验证链接

我提供了一个小部件,用户可以在其中存储他们创建的链接

换句话说,他们:

  • 单击添加链接
  • 模态弹出,他们输入信息:链接标题,链接URL,订单
  • 通过AJAX将其保存到DB,然后刷新小部件以显示他们创建的所有用户链接
  • 我想做的是,当用户单击他们的链接时,确定该链接是否存在(可能不在这个域上,这样我就可以看到一个可预见的问题w/AJAX),然后继续正常打开新窗口并发送给他们

    然而,如果不是,我想产生一个咆哮般的信息,说的东西像

    很抱歉,这个链接不存在, 请验证您的链接


    我基本上需要在客户端的基础上验证链接存在的方法。这是可能的吗?

    您可以使用jquery在所有链接上附加一个
    click()
    事件处理程序,然后尝试在隐藏的iframe中加载URL,如果成功,则在新窗口中打开链接。请注意,这是一种非常昂贵的链接检查方法。也许可以做一些更聪明的事情,比如HTTP头请求

    编辑:

    在此处找到了解决方案(仅适用于纯javascript):

    一个jQuery解决方案来自这里:


    正如@Matt King所指出的,这些实际上是非常无用的跨域操作——在这种情况下,我会在您的应用程序中设置一个proxy.aspx页面,您可以查询它。然后,该代理必须在C#中执行HTTP HEAD请求,并返回结果(成功/失败)对于Client/jQuery,

    @ Matt King:好的问题-我没有考虑这一部分,这使得它在某种程度上无用,除了设置一个为您执行真正的HTTP头请求的PROX.ASPX页面。与链接擦除相同的原则——看看脸谱网是如何做到的。(您的客户端->服务器上的刮刀功能的ajax->获取url并检查)
    function UrlExists(url)
    {
      var http = new XMLHttpRequest();
      http.open('HEAD', url, false);
      http.send();
      return http.status!=404;
    }
    
    ajaxSizeRequest = $.ajax({
        type: "HEAD",
        async: true,
        url: url,
        success: function(message){
        }