确定链接在用户单击时是否有效

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

换句话说,他们:

  1. 单击添加链接
  2. Modal弹出并输入信息:链接标题,链接URL,订单
  3. 通过AJAX将其保存到数据库,然后刷新小部件以显示他们创建的所有用户链接。

我想做的是当用户点击他们的链接,确定链接是否存在(可能不在这个域上,所以我可以看到一个可预见的问题与AJAX),如果它然后继续正常打开新窗口并发送它们在他们的快乐方式。

但是,如果不是,我想生成类似于Growl Like的消息。

对不起,链接不存在,请validation您的链接。

我基本上需要用于在客户端基础上validation链接存在的方法。 这有可能吗?

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

编辑:

找到解决方案(仅适用于普通的javascript): Javascript / Ajax中的HTTP HEAD请求?

 function UrlExists(url) { var http = new XMLHttpRequest(); http.open('HEAD', url, false); http.send(); return http.status!=404; } 

这里有一个jQuery解决方案: Ajax HEAD请求通过Javascript / jQuery

 ajaxSizeRequest = $.ajax({ type: "HEAD", async: true, url: url, success: function(message){ } 

正如@Matt King所指出的那些实际上是相当无用的跨域 – 在这种情况下,我会在您的应用程序中设置proxy.aspx页面,而不是您查询。 然后,此代理必须在C#中执行HTTP HEAD请求,并将结果(成功/失败)返回给client / jQuery。